LSM330DLC陀螺仪的I2C通信问题
最近弄了套STM32F103C8和LSM330DLC(6轴)的平台,要实现 两者间的I2C通信,调试过程中发现个矛盾:MCU读取WHO_AM_I_G寄存器,返回的值是0x33,而datasheet中预设的值是0xd4,于是尝试了下写入其他值(不确定这个寄存器支不支持值写入改动),返回的仍然是0x33.
于是我怀疑I2C读出错,继续试验,往CTRL_REG1_A寄存器写入0x05的数据,然后接着读取此寄存器的数据,得到返回值0x05.在CTRL_REG2_A到CTRL_REG6_A的寄存器写入某些值,写入和读取返回的一致,I2C通信应该没问题。
回头继续读取WHO_AM_I_G寄存器,示波器抓取数据,软件获取到的0x33返回值和示波器抓取的数据一致,前面器件地址0x32和WHO_AM_I_G的地址0x0f波形也都正确,说明函数没问题。
为什么WHO_AM_I_G这个寄存器读取的值和datasheet的值不一致啊:o:o
RE:LSM330DLC陀螺仪的I2C通信
你可否确认一下操作的是Gyro的部分而非Acc的部分?:oRE:LSM330DLC陀螺仪的I2C通信问题
新片子?是否被改写过?RE:LSM330DLC陀螺仪的I2C通信问题
可以仔细看看datasheet,可能和芯片批次或者芯片子型号有关。从你的描述,I2C读写应该没有问题。回复:LSM330DLC陀螺仪的I2C通信问题
你用逻辑分析仪抓一下,看看RE:LSM330DLC陀螺仪的I2C通信问题
看一下IIC的波形对不对。。RE:LSM330DLC陀螺仪的I2C通信问题
俺描述,通讯和函数都是正确的,是否是新片?如果是转手的,会不会是修改过的?RE:LSM330DLC陀螺仪的I2C通信问题
这个寄存器应该是不能自己修改的, 应该是一个芯片的系列号之类的回复:LSM330DLC陀螺仪的I2C通信问题
这个陀螺仪也支持SPI通信的,为了验证你的IIC通信是否正确,你可以改用SPI通信,再去读哪个WHO_AM_I_G寄存器,看看是否读出来的是0x33或者是DATASHEET的默认值0xD4.如果你读取的是前者,证明你的IIC总线没问题。RE:LSM330DLC陀螺仪的I2C通信问题
楼主的问题解决没有?
页:
[1]