【STM32F4 HAL】MPU6050食用
关于MPU6050模块的食用>_<(本人比较菜,写的不好或有错误的地方欢迎大佬指出)
最近学校冬令营发了个MPU6050模块,第一次弄也花了我花了不少时间,于是就把其中一些步骤以及要点简单说下。
至于MPU6050的介绍啥的,我也不细说了,很多地方都有,我就说下怎么移植现成的代码。(用的核心板是F401CCU6)
把代码下载一下,芝士地址 (提取码:1145) (里面有些头文件如果报错的话删掉就行了)
代码分成两部分,一个是对mpu6050寄存器的读取,另一个是dmp库,也就是把读取的原始信息进行一系列操作得到的三轴角速度以及欧拉角等信息。
然后就是CubeMX里的配置
1、尝龟配置,开烧录口,以及时钟配置
2、与MPU6050建立IIC通信:
找两个IO口,我选择的是A0与A1,都设置为开漏输出,上拉,其他不变(如图)
3、开启串口用于调试
这里我选择的是UART1,要是选别的串口的话后面printf重定向代码记得改一下
4、project manager里正常配置即可
接线:只用MPU6050的SDA,SCL,GND,VCC四个引脚即可,其他的话目前不需要,引脚对着图接即可
我用的是DAPLINK,就用DAPLINK上的TX接单片机的RX,RX对TX即可
之后就是keil里的部分
先把移植文件都导入进去,根据引脚配置改一下mpuiic.h里的宏定义,然后定义一下三个欧拉角变量(pitch,roll,yaw)
再写一下printf重定向,把下面代码加在usart.c即可
然后是main函数里的代码
然后打开串口助手,就可以收到MPU6050发送的三个欧拉角信息啦
值得注意的一些地方:
1、两个GPIO口的配置均为开漏输出,如果是推挽输出的话会导致dmp初始化不成功(返回值为4)
2、烧录的时候MPU6050记得放平,不然容易出现误差
3、因为没加地磁计,所以yaw的零点漂移会比较严重
4、其他问题可以参考这篇博客里最后的问题汇总
第一次写博客,还请多多指教>_<
后面有空可能会写pid的东西()
__EOF__

本文链接:https://www.cnblogs.com/Asaka-QianXiang/p/17031005.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了