TI中文支持网
TI专业的中文技术问题搜集分享网站

5509A 用I2C接口API怎么读出从设备(0xA6)中的寄存器(0x00)读出寄存器的数据?

5509a与加速度传感器adxl345进行iic通信,现在要从adxl345中的0x00寄存器中读出数据,该怎么写读函数?

int I2C_read (Uint16 *data, int length, int master, Uint16 slaveaddress,int transfermode, int timeout, int checkbus);

在数据文档中iic_read读中只有从设备的地址,怎么读出其子地址(adxl345中的寄存器)的数据?恳请大神帮忙指导!

Shine:

请参考这个应用报告里的AIC23寄存器读写例程。

http://www.ti.com/lit/an/spra785a/spra785a.pdf

Kecheng Li:

回复 Shine:

这篇文档我看了,里面只有往AIC23寄存器写数据的例程,如果我要从某个从地址的某个寄存器里面读出这个寄存器的数据,应该怎么样写呢?

z=I2C_read(datareceive,5,1,0×50,3,30000,0);

上面是从eeprom读数据的函数,按我的理解是:从从地址0x50读出5个数据放到datareceive中,但是如果从0x50中的0x11(假设有这个寄存器)读出数据,上面的函数该怎么写呢?本人刚学,望大神赐教!

Shine:

回复 Kecheng Li:

我看了一下AIC23的时序是只写的,所以这里没有读寄存器的例程。

你看一下adxl345的读寄存器的时序,它要求是先写寄存器的地址,再去读寄存器的值。 

Tony Tang:

子地址属于数据,不属于I2C地址,将它当数据写给I2C设备,顺序按你的I2C设备的访问要求做。

赞(0)
未经允许不得转载:TI中文支持网 » 5509A 用I2C接口API怎么读出从设备(0xA6)中的寄存器(0x00)读出寄存器的数据?
分享到: 更多 (0)