主要内容

将数据写入I2C设备

描述

例子

写(myi2cdevice数据dataPrecision将数据写入I2C设备。

方法在完成向设备写入指定数据或超过超时时间时停止。

例子

全部折叠

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

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

mypi = raspi
mypi = Raspi属性:DeviceAddress:“raspberrypi-hysdu8X38o”端口:18725 BoardName:“树莓π模型B牧师2”AvailableLEDs:{“led0”}AvailableDigitalPins:[4 7 8 9 10 11 14 15 17 18 22日23日24日25日27日30 31]AvailableSPIChannels: {} AvailableI2CBuses:{“i2c-0”“i2c-1”}I2CBusSpeed:100000万博1manbetx支持的外设

重新显示AvailableI2CBusesI2CBusSpeed

mypi。AvailableI2CBuses mypi。I2CBusSpeed
Ans = 1×2 cell array {'i2c-0'} {'i2c-1'} Ans = 100000

显示I2C引脚的位置。

showPins (mypi)

引脚图显示,对于这个模型和修正的板,i2c-1总线在GPIO头引脚上可用I2C1_SDA (GPIO 2)I2C1_SCL (GPIO 3)

在将您的I2C设备物理连接到I2C引脚之后,获取连接到I2C总线的I2C设备的地址,“i2c-1”

scanI2CBus (mypi“i2c-1”
ans = {0 x55 ', ' 0 x20 '}

创建一个连接,i2csensor,从MATLAB软件到I2C传感器“0 x20”

i2csensor = i2cdev (mypi,“i2c-1”“0 x20”
i2csensor = I2C with Properties: Bus: I2C -1 I2CAddress: 0x20

从传感器读取两个uint8数字。

output1 =阅读(i2csensor, 2)

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

output2 = readRegister (i2csensor 14)

创建一个连接,i2cdisplay,从MATLAB软件到I2C LED显示屏“0 x55”

i2cdisplay = i2cdev (mypi,“i2c-1”“0 x55”
i2cdisplay = I2C with Properties: Bus: 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。

enableI2C (mypi)

当您启用I2C时,您可以更改mypi。I2CBusSpeed财产。

disableI2C (mypi) enableI2C mypi (mypi, 400000)。I2CBusSpeed
ans = 40000

输入参数

全部折叠

连接到I2C设备,指定为i2cdev对象。

例子:myi2cdevice

要写入I2C设备的数据,指定为十六进制值的向量。

例子:[hex2dec (20) hex2dec (51)]

数据类型:int8|int16|uint8|uint16

请注意

如果写入的数据大于uint8,数据为小端格式。

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

例子:“int16”

数据类型:字符

扩展功能