主要内容

writeregister

写在I2C设备上注册

描述

例子

Writeregister(myi2cdevice,,,,登记,,,,价值,,,,DataPrecision将十六进制值写入I2C设备上的寄存器。可选地,您可以将数据精度与设备上的寄存器大小匹配。

writeregister当方法完成将指定的数据写入寄存器或超时期通过时,方法会停止。

例子

全部收缩

您可以将数据与一对I2C设备连接和交换。

从MATLAB创建连接®软件到Raspberry Pi™板。

mypi = raspi
mypi = Raspi with Properties: DeviceAddress: 'raspberrypi-hysdu8X38o' Port: 18725 BoardName: 'Raspberry Pi Model B Rev 2' AvailableLEDs: {'led0'} AvailableDigitalPins: [4 7 8 9 10 11 14 15 17 18 22 23 24 2527 30 31] availbableSpichanels:{}可用I2CBUSS:{'i2c-0''i2c-1'}i2cbusspeed:100000万博1manbetx支持的外围设备

重新播放可用的2cbusesi2cbusspeed

mypi.availablei2cbuses mypi.i2cbusspeed
ans = 1×2个小区阵列{'i2c-0'} {'i2c-1'} ans = 100000

显示I2C引脚的位置。

Showpins(mypi)

PIN映射显示,对于此模型和董事会的修订I2C-1公共汽车可在GPIO标头销上使用I2C1_SDA(GPIO 2)I2C1_SCL(GPIO 3)

将您的I2C设备实际连接到I2C引脚后,获取附加I2C总线的I2C设备的地址,'I2C-1'

scani2cbus(mypi,'I2C-1'
ans = {'0x55','0x20'}

创建连接,i2csensor,从MATLAB软件到I2C传感器'0x20'

i2csensor = i2cdev(mypi,'I2C-1',,,,'0x20'
i2csensor = i2c带有属性:总线:i2c-1 i2caddress:0x20

从传感器中读取两个UINT8号。

output1 = read(i2csensor,2)

从传感器中读取寄存器14的值。

output2 = readregister(i2csensor,14)

创建连接,i2cdisplay,从MATLAB软件到I2C LED显示'0x55'

i2cdisplay = i2cdev(mypi,'I2C-1',,,,'0x55'
i2cdisplay = i2c带有属性:总线:I2C-1 i2Caddress:0x55

将字符写入显示。

写(i2cdisplay,[hex2dec('20')hex2dec('51')))

写一个标量十六进制值,hex2dec('08'),在I2C设备上注册3。

writeregister(i2cdisplay,3,hex2dec('08'),'uint8'

如果您不使用I2C,请禁用I2C以释放其他GPIO引脚。

disablei2c(mypi)

在再次使用I2C之前,启用I2C。

启用2C(mypi)

启用I2C时,您可以更改mypi.i2cbusspeed财产。

disablei2c(mypi)enablei2c(mypi,400000)mypi.i2cbusspeed
ANS = 40000

输入参数

全部收缩

连接到I2C设备,指定为i2cdev目的。

例子:myi2cdevice

I2C寄存器号,指定为标量。该号码可从设备数据表获得。

例子:14

数据类型:双倍的

数字值要写入注册,指定为标量。(不接受数组。)

例子:hex2dec('08')

数据类型:int8|INT16|UINT8|UINT16

笔记

如果书面的数据大于UINT8,数据的格式很小。

数据精度,指定为字符串。将数据精度与设备上的寄存器大小匹配。选修的。

例子:'int16'

数据类型:char

扩展功能