• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F030读取MPU6050仅能读出ID=68

glenxu 2020-03-23 浏览量:1166

如题,初始化验证,&0X6B=0X00 结果正常,但加速度读数为零。

请问什么原因。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 很多人提到STM32的IIC库函数不好用、不稳定,由于我对C的编程知识起步,
    所以只能用函数做,并且也不希望自己建"PROJECT"和“INIT”在这样的基
    础下,经过反复试验,最终发现MX   HAL建立工程、初始化非常好用。
    出现的问题和众多码农相同,最大的问题就是能收到地址“0X68”,所有其它数据为零不变!
    最终经对比发现,程序没有问题,主要问题是IIC的初始化中不能随意增加延时,很多帖子和
    MPU6050说明中提到要由足够的延时,其实这就是个坑,因为延时后6050又进入了休眠,
    所以读出的值全为零。结论是该加延时的加,比该加的不要画蛇添足!
    由于100K的IIC通讯速度很快,所以只在上电初始化和有复位操作后各加500mS延时,其它豆不需要,
    除非你强制运行在很低的CPU时钟,否则IIC的初始化和读写没有跟不上速度的问题,不需要延时。
    试验发现STM32F103和STM32F030对HAL库函数的IIC操作都很问题。
    • 发布于 2020-03-30
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:2
  • 是不是还有哪个寄存器有问题。  MPU6050 网上有很多的例程。 都是好用的。  看看I2C 硬件电路是不是有问题。 或者读出来的数据就是不对的。  
    • 发布于2020-03-23
    • 举报
    • 评论 0
    • 1
    • 0

  • 这个要看下MPU6050上面是不是某个寄存器没有配置好
    • 发布于2020-03-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32F030读取MPU6050仅能读出ID=68