搞了一上午的l3g4200d 连续读多字节问题!!
以前搞了个读单字节的,现在要和adxl345数据融合了,觉得读单字节不太效率,于是搞个连续读多字节的,以后再搞个中断的。今天上午一弄,还以为一次调通,一看连续读4200的数据 ,结果高字节竟然和低字节的一样,而adxl345的就没有问题。
后来以为是对stm32硬件i2c了解不深,就去看stm的文档,改来改去还是不行。
睡完午觉 下午一来,突然想到会不会4200是i2c协议有点不同,因为同一程序adxl345好好的啊
于是看4200的文档,一看
http://cache.amobbs.com/bbs_upload782111/files_52/ourdev_718954D0R9PK.jpg
4200 i2c (原文件名:4200.jpg)
我那个去,i2c还有这一说法,然后我立马,改地址 (0x2a | 0x80),结果数据正常得不能再正常了,瞬间就有一种兴奋的感觉!!
希望对调4200程序有问题的童学有所帮助!! 用L3G4200的大都遇到过这个问题。
对于连续读写,I2C协议里本来没有这样的限制的,所以大家不会去注意它,只是ST自己这样设计而已。弄得大家都得过这道坎才能用好L3G4200。 恩,也是刚发现这个问题。datasheet还得仔细看啊。 确实需要注意还是datasheet要仔细看 ST的MEMS都是这个德行的 mark 没错啊,我也是今天才把读多字节的调通, 还好英语不算太差。 {:cry:}英语差的很啊 mark{:smile:} mark{:smile:}{:smile:} 留意一下 但是L3G4200D的数据读出来是多少啊 !怎么我读出来时候572左右(在静止状态下),移动起来数据就到100一下
大多数小的数据10左右这样应该是错误的吧怎么回事啊 ?????? mark
以后也许会用到
页:
[1]