OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6458|回复: 2

移植UCOSII+MPU6050代码,读取IIC地址正确,但读取加速度寄存器数值为0,求助!!!!!

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2018-12-13
在线时间
0 小时
发表于 2018-12-13 09:46:08 | 显示全部楼层 |阅读模式
1金钱
并且,裸机读取MPU6050的数据也是正常的,但是只要使用操作系统,就一个任务,每隔20ms读取三轴加速度的值,就出错!!!
论坛里面的各种初始化之后增加延时的操作都试过了,都没用;数据定义到任务里面或者全局也试过了,没用
然后,用临界宏保护了读取加速度和打印加速度这部分,也出错。。。。难受啊

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2018-12-13
在线时间
1 小时
发表于 2018-12-13 18:41:17 | 显示全部楼层
在对mpu6050读写的时候有没有对芯片复位一下再去读寄存器呀!或许看看有没有特殊寄存器在操作寄存去需要配置一下呀。能够读取I2C的地址排除I2C链路的问题多多找找MPU6050寄存器配置上。
回复

使用道具 举报

18

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
232
金钱
232
注册时间
2017-3-19
在线时间
39 小时
发表于 2020-3-23 22:53:53 | 显示全部楼层
分享一下我个人遇到的情况,希望可以帮助到你。

我也是在使用 ucos 系统前,IIC 是能够跑的;但是使用了 ucos 之后系统就不能跑了。

我的情况比较特殊,我使用 ucos 前的 IIC 是使用寄存器来写的,但是 ucos 是使用 HAL 库。这里的问题是使用寄存器的时候 IO 口的复位置位寄存器是 BSRR ;而使用了 ucos 系统的时候 HAL 库的复位置位寄存器是 BSRRL 和 BSRRH 寄存器,当时粗心把这两个没写正确,所以导致 IIC 的时序模拟不出来,在后来 Debug 的时候才发现了这个问题,目前 ucos 下的 IIC 能够正常使用!

注:原子哥说的delay函数要检查一下,虽然我也是使用了比较新的版本,dalay.c中已经说明支持ucos系统,所以检查一下就好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 17:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表