STM32两轮自平衡小车(学习记录)——MPU6050
生活随笔
收集整理的這篇文章主要介紹了
STM32两轮自平衡小车(学习记录)——MPU6050
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
摘要
MPU6050是一種非常流行的空間運(yùn)動(dòng)傳感器芯片,可以獲取器件當(dāng)前的三個(gè)加速度分量和三個(gè)旋轉(zhuǎn)角速度。由于其體積小巧,功能強(qiáng)大,精度較高,不僅被廣泛應(yīng)用于工業(yè),同時(shí)也是航模愛好者的神器,被安裝在各類飛行器上馳騁藍(lán)天。
MPU6050的數(shù)據(jù)是有較大噪音的,若不進(jìn)行濾波會(huì)對(duì)整個(gè)控制系統(tǒng)的精準(zhǔn)確帶來嚴(yán)重影響。
MPU6050芯片內(nèi)自帶了一個(gè)數(shù)據(jù)處理子模塊DMP,已經(jīng)內(nèi)置了濾波算法,在許多應(yīng)用中使用DMP輸出的數(shù)據(jù)已經(jīng)能夠很好的滿足要求。
移植過程
移植需要官方代碼
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
再自己寫一個(gè)中斷
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優(yōu)先級(jí)配置也就是MPU6050 INT引腳配置///優(yōu)先級(jí)設(shè)為最高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); }總結(jié)
以上是生活随笔為你收集整理的STM32两轮自平衡小车(学习记录)——MPU6050的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 带通 带阻滤波器 幅频响应_滤波器原理,
- 下一篇: sun.misc.BASE64Encod