概述
stm32F103 模拟I2C mpu6050收到数据全为0,或者地址为209,104,0x68,0xD0的一些解决办法总结:
- 最近在学习模拟I2C,硬件有两套stm32F103C8T6和stm32F103RBT6,网上买的mpu6050套件。用stm32F103RBT6正常读到数据,可是换stm32F103C8T6读到的全是0,读who am I 按道理应该是104 (0x68)。但是读到的有时候 全为0 甚至209,或者255等等。
解决办法
- 1 首先看能否读到who am i 读不到或者读的不正确就,对mpu6050进行一下复位:
IICwriteBit(devAddr,MPU6050_RA_PWR_MGMT_1,7,1);
delay_ms(30);
IICwriteBit(devAddr,MPU6050_RA_PWR_MGMT_1,7,0);
2 狗日的甚至我用不同的线缆读的却都不一样。更不说不同的板子了。不能的板子在keil编译的时候最好选择相应的配置。
3 读不到who am i 也有可能是挂了一个以上的I2C设备,于是我就手工割掉了一个。
4 顺便说个问题 在I2C的时候 PB67 成功了PB56成功了,但是PB45 却一直有问题,最后多亏一位大神相助,STM32的PB3、PB4,分别是JTAG的JTDO和NJTRST引脚,在没关闭JTAG功能之前,在程序中是配置不了这些引脚的功能的。要配置这些引脚,首先要开启AFIO时钟,然后在AFIO的设置中,释放这些引脚。具体看STM32的参考手册中有关AFIO的部分。 选自:http://www.stmcu.org/module/forum/thread-307696-1-1.html
下图为读错的情况:
第一波也读对了,但是数据全为0,这个做了几次试验,应该是上电复位的时候接触不好,导致初始化的时候 还是没有完美。
后面这张为改正来后的测试数据
附上程序源码:
http://download.csdn.net/detail/jasondooc/9159447
最后本人菜鸟,正在学习中,有问题还请多多交流指正 helloxidian@126.com,如有侵权立即删除。
最后
以上就是沉静紫菜为你收集整理的stm32F103 模拟I2C mpu6050收到数据全为0,或者地址为209,104,0x68,0xD0的一些解决办法总结的全部内容,希望文章能够帮你解决stm32F103 模拟I2C mpu6050收到数据全为0,或者地址为209,104,0x68,0xD0的一些解决办法总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复