| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32使用CUBEMX移植MPU6050DMP并读取角度 -> 正文阅读 |
|
[嵌入式]STM32使用CUBEMX移植MPU6050DMP并读取角度 |
?MPU6050是一款入门级别的陀螺仪加速度计,网上关于移植MPU6050和DMP的教程多是在标准库条件下的。然而现在ST公司主推HAL库,网上关于在HAL库条件下移植的教程却少之又少。本人虽然做过MPU6050的移植,但是现在需要在HAL库条件下重新移植一遍。在网上反复搜索无果后,被迫自己移植成功,将自己的经验发到网上来。 成功的截图:配套的代码链接:UART使用的是正点原子的XCOM MPU6050的文件使用的是正点原子的 STM32HAL库MPU6050.zip-嵌入式文档类资源-CSDN文库https://download.csdn.net/download/weixin_53351352/75286615 其他相关知识在有关MPU6050移植教程之前,你还需要掌握以下知识(这部分也会在教程中略微提及):
正式开始使用CUBEMX新建文件首先我们需要使用CUBEMX新建一个文件 SYS: ?RCC: ?I2C:此处由于其它硬件部分的需要,我是用的是PB8和PB9,参数默认 ?UART:参数默认 ?时钟树:F103使用72MHz 最后: 配置Project Manager后,点击GENERATE CODE生成相关代码。 在CUBE中配置其他代码串口重定向:我们需要将printf重定向到HAL_UART_TRANSIMIT上,根据重定向的方法,首先我们需要在usart.h中包含头文件“stdio.h”
然后我们需要进行串口的重定向: 在代码中加入以下代码:
这部分代码个人会加入到usart.c中 ?最后,我们还需要点击魔术棒,在Target选项卡中勾选"Use MicroLIB",这样我们才能使用C库函数,在printf中输出字符串等。 ?这样,我们的串口重定向就配置好了。 将MPU6050相关文件添加到工程文件中在工程文件中新建一个“new group”,添加MPU6050的文件,同时在文件中加入头文件的路径,这部分就不再赘述了。 相关文件修改?然后就是修改相关文件 头文件以及宏定义将所有的"sys.h"修改为"main.h" ?在"main.c"中包含相关头文件 ?将所有的"mpuiic.h"修改为"i2c.h",并且在mpu6050.h中加入以下宏定义
I2C部分由于正点原子的MPU6050的I2C读写采用的是位带操作,我们需要将头文件中有关位带操作的宏定义删除 ?然后将I2C读写的函数进行修改,使用HAL库中的函数。只需修改下面的部分:
main.c在main.c文件中加入DMP的初始化、MPU6050地址的读取和读取角度的打印。
注:中间注释掉的部分在特定条件下也可以使用 其他将头文件中的#include "delay.h"全部删除掉,在hal库中,只有一个函数HAL_Delay对应毫秒级延时,所以,我们只需要将所有的delay_ms用HAL_Delay代题即可 然后将MPU_Init中的I2C初始化改为HAL库的初始化函数。 这样应该就可以看到文章开始时的那一张图片了。 如果又没有解释清楚的部分,可以下载我的文件自己看一下。 踩坑提示由于MPU6050的DMP将数据解算出来后会存入到FIFO中。因此,我们需要在合理的时间将FIFO中的数据读出来。如果太慢,FIFO就会溢出,我们将读到的全都是0;如果读的太快,数据仍未存入到FIFO中(在这个项目中我还没见过)。 可以次啊用这种方式:
即如果读到FIFO溢出,我们立刻进行下一次读取,直到成功读取数据。否则就需要合理设置延时时间去读取FIFO中的数据。 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:47:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |