初级会员

- 积分
- 125
- 金钱
- 125
- 注册时间
- 2015-4-22
- 在线时间
- 11 小时
|
模拟I2C就不在这边多说了,只是总结下我自己调试过程中的问题。
程序都是自己写的,包括模拟的I2,当然借鉴了不少,可以给大家个意见(给新手),调模拟的I2可以先用24Cxx系列的芯片,个人觉得比较容易些。
接下来进入正题(之前确保I2C已经能够正常工作):
1.读取WHO AM I寄存器出错问题
返回值:0xff或者0x00,I2C问题
0xd1,先检查杜邦线问题,最好能够直接焊住,在基本确定不是杜邦线问题后,SDA口改为开漏输出(具体原因未知,本人在PB6PB7上是推挽,工作的挺正常,到PA3PA6上就不行了,一定要改为推挽)
2.AD0脚的问题
不接东西,内部默认拉低,器件地址为0XD0
接上VCC(3.3),器件地址为0xD1
3.数据读取问题
根据芯片资料可以知道,无论加速度计还是陀螺仪的数据存放都是按1个轴2个字节的方式,所以读取的时候记得将其高低位数据合并
4.数据读取后处理问题
加速度计,根据你所选择的量程来决定,我选择了+-2g,灵明度LSB则为(2^16/((+2)-(-2)))=16384,记得读取的数据除上灵明度后的值就是你要的数据了
陀螺仪同理
还有就是数据还存在正负问题,数据的最高位为0即为正为1即为负
5.自检问题
自检的时候记得放平模块
中断以及其它的寄存器还没看过,就先写到这儿,下面还有一些资料,希望对大家有些帮助!
|
|