STM32F405+MPU6050

1历时快一月的STM32F405+MPU6050(以下简称震动板)调试通了,本打算今天放弃的,使用控制电路来实现目前自己项目所需要的功能,控制电路如下:在这里插入图片描述
但是说放弃,觉得还是再试最后一下吧,整体过程遇到问题及解决如下:
(1)自己用的是正点原子的mpu6050例程,只将mpu6050例程的串口1改成了串口6,在开发板上可以正常运行,匿名四轴也可以接受数据,但是在震动板上,没有数据,且程序再while(mpu_dmp_init())这个里面一直循环,在网上试了多种解决方法,但是依然无果,最后发现是自己将原理图上的10uf焊成了1uf,改了之后发现跳出这个循环了,换了可能是导致芯片的电压不稳定,在电路图这里大家一定要注意
在这里插入图片描述
这是开发板原理图
在这里插入图片描述
这是我自己焊错了,但是改了之后可以跳出while(mpu_dmp_init())循环,但是依然没有数据。
(2)期间在网上也查了很多原因,什么电源上电后再初始化、器件损坏等等,但是依然找不到原因。一步一步慢慢执行,看了好几遍资料,当AD0接地的时候,应该输出0x68,表示器件是连上的,奔着这个方向先看看自己mpu6050 连接上没,因为一度怀疑自己在焊接6050时吧芯片烧了,怎样看输出0x68方法如下:
在这里插入图片描述
执行到MPU初始化里if(res==MPU_ADDR)这里时,在右下角watch1窗口会显示0x68,表示传感器已经和单片机连接上了,在后边程序打断点,因为没有显示屏,只能串口输出,发现在串口也只是乱码,
在这里插入图片描述
在这里插入图片描述
串口可以输出返回值,整个程序初始化都是过了的。
在这里插入图片描述
匿名四轴一直收到的是12字节一组的数据,技术说看着像一直在复位,但是我的震动板是没有加按键的,所以觉得把按键注释掉试试,,结果在四轴上可以收到数据了,但是数据是有延迟的,不过还好可以收到数据了(视频上传不了),后来发现一组传输240,个字节,一组432个字节,这样一直循环传输。
在这里插入图片描述
(3)改了mpu初始化里的采样率、频率都不行,以为电压问题,也不是,改了串口线,以为太长了,正常70CM以内,不行。以为LED有影响,注释掉LED,发现不行,改了波特率也不行,最后用示波器观察,发现有个500ms的延迟,于是去延迟里边改了,还是不行
在这里插入图片描述

波形图
i在这里插入图片描述
这块改成1,依然不行,查了好多,一度想放弃,决定死马当活马医,再试一次,将这里的延迟注释掉,结果匿名四轴没有延迟了。同样的程序下载到开发板里,发现将延迟注释掉在开发板上数据传输变化太快,不适用。
在这里插入图片描述

感悟:做任何事当你做了很多的努力但是依然不成功想要放弃的时候,告诉自己再坚持一下,说不定会有不一样的结果。

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值