STM32两轮自平衡小车(学习记录)——MPU6050
生活随笔
收集整理的這篇文章主要介紹了
STM32两轮自平衡小车(学习记录)——MPU6050
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要
MPU6050是一種非常流行的空間運動傳感器芯片,可以獲取器件當前的三個加速度分量和三個旋轉角速度。由于其體積小巧,功能強大,精度較高,不僅被廣泛應用于工業,同時也是航模愛好者的神器,被安裝在各類飛行器上馳騁藍天。
MPU6050的數據是有較大噪音的,若不進行濾波會對整個控制系統的精準確帶來嚴重影響。
MPU6050芯片內自帶了一個數據處理子模塊DMP,已經內置了濾波算法,在許多應用中使用DMP輸出的數據已經能夠很好的滿足要求。
移植過程
移植需要官方代碼
dmpKey.h
dmpmao.h
inv_mpu.c
inv_mpu.h
inv_mpu_dmp_motion_driver.c
inv_mpu_dmp_motion_driver.h
以及
mpu6050.c
mpu6050.h
mpuiic.c
mpuiic.h
再自己寫一個中斷
void MPU6050_EXTI_Init(void) { GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //INT-B5 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉輸出GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource5);EXTI_InitStructure.EXTI_Line=EXTI_Line5;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure); //外部中斷5優先級配置也就是MPU6050 INT引腳配置///優先級設為最高NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); }總結
以上是生活随笔為你收集整理的STM32两轮自平衡小车(学习记录)——MPU6050的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 带通 带阻滤波器 幅频响应_滤波器原理,
- 下一篇: sun.misc.BASE64Encod