用STM32F103驱动陀螺仪MPU6050模块

现在学习32编程,今天用STM32F103驱动陀螺仪MPU6050,用串口获取数据,工程文件是用正点原子的迷你板修改的,陀螺仪驱动是用正点原子的战舰STM32开发板V3修改的。以此文记录一下。
1
新建工程

我直接用的正点原子的工程文件模板,在工程文件里新建HARDWARE文件夹。把附件下载的MPU6050驱动包解压,然后把4个文件和一个eMPL文件夹一起放到HARDWARE文件夹
MPU6050.rar
42.47KB
2
添加文件和添加路径





123
用KEIL打开新建的工程,在管理设置中添加HARDWARE文件夹,然后添加你刚你的MPU6050驱动文件,在
3
匹配头文件





123
先点击左上角编译按钮,先编译一下,左边会列出你刚才添加的所有文件。先补齐工程的头文件#include "sys.h",#include "delay.h",#include "usart.h",然后双击左边的mpu6050.c,复制#include "mpu6050.h"到main.c。
4
添加定时器




12
在main.c文件中或单独写个timer文件,写个定时器函数:
void Timer_Init(void)
{
//配置RCC
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //通用计时器TIM2
//选择时钟
TIM_InternalClockConfig(TIM2); //内部时钟
//配置时基单元,20Hz,Feq = 72M / (PSC + 1) / (ARR + 1)
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; //不分频
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数
TIM_TimeBaseInitStructure.TIM_Period = 5000 - 1; //ARR自动重装器值
TIM_TimeBaseInitStructure.TIM_Prescaler = 720 - 1; //PSC预分频器值
TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0; //重复计数器值(高级定时器)
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseInitStructure);
//配置中断
TIM_ClearFlag(TIM2, TIM_FLAG_Update); //防止复位后立刻进入中断,清除中断标志位
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); //使能TIM2更新中断
//配置NVIC
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //分组2:2位抢占优先级,2位响应优先级
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //抢占优先级2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应优先级1
NVIC_Init(&NVIC_InitStructure);
//使能定时器
TIM_Cmd(TIM2, ENABLE);
}
void TIM2_IRQHandler(void)
{
// 检查更新中断
if(TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)
{
// 定时读取DMP数据,保证FIFO不溢出也不读空
mpu_dmp_get_data(&pitch, &roll, &yaw);
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
}
}
然后在主函数中初始化Timer_Init,
5
测试



12
在主文件定义欧拉角全局变量 float pitch, roll, yaw; ,在定时器TIM2_IRQHandler(void)中获取欧拉角:mpu_dmp_get_data(&pitch, &roll, &yaw);在主函数中定时打印。编译烧录,测试。
0
0
0
qq空间
微博
复制链接
分享 更多相关项目
猜你喜欢
评论/提问(已发布 0 条)
0