最近弄了套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的值不一致啊 |
RE:LSM330DLC陀螺仪的I2C通信
RE:LSM330DLC陀螺仪的I2C通信问题
RE:LSM330DLC陀螺仪的I2C通信问题
回复:LSM330DLC陀螺仪的I2C通信问题
RE:LSM330DLC陀螺仪的I2C通信问题
RE:LSM330DLC陀螺仪的I2C通信问题
RE:LSM330DLC陀螺仪的I2C通信问题
回复:LSM330DLC陀螺仪的I2C通信问题
RE:LSM330DLC陀螺仪的I2C通信问题