這是我移植平衡小車之家的程序,主要是處理MPU6050的數據校準
單片機源程序如下:
- #include "sys.h"
- /**************************************************************************
- 作者:平衡小車之家
- **************************************************************************/
- int Encoder_Left,Encoder_Right; //左右編碼器的脈沖計數
- int Moto1,Moto2; //電機PWM變量 應是Motor的 向Moto致敬
- float Angle_Balance,Gyro_Balance; //平衡傾角 平衡陀螺儀 轉向陀螺儀
- int main(void)
- {
- Stm32_Clock_Init(9); //=====系統時鐘設置
- delay_init(72); //=====延時初始化
- JTAG_Set(JTAG_SWD_DISABLE); //=====關閉JTAG接口
- JTAG_Set(SWD_ENABLE); //=====打開SWD接口 可以利用主板的SWD接口調試
- LED_Init(); //=====初始化與 LED 連接的硬件接口
- OLED_Init(); //=====OLED初始化
- uart_init(72,128000); //=====初始化串口1
- MiniBalance_PWM_Init(7199,0); //=====初始化PWM 10KHZ,用于驅動電機 如需初始化電調接口 改為MiniBalance_PWM_Init(9999,35) 200HZ
- Encoder_Init_TIM2(); //=====編碼器接口
- Encoder_Init_TIM4(); //=====初始化編碼器2
- IIC_Init(); //=====模擬IIC初始化
- MPU6050_initialize(); //=====MPU6050初始化
- DMP_Init(); //=====初始化DMP
- EXTI_Init(); //=====MPU6050 5ms定時中斷初始化
- while(1)
- {
- oled_show(); //===顯示屏打開
- printf("平衡 傾角 %f \r\n左輪編碼器%d \r\n右輪編碼器%d \r\n",Angle_Balance,Encoder_Left,Encoder_Right);//向串口調試助手發送數據
- }
- }
復制代碼
所有資料51hei提供下載:
MiniBalanceV3.5【大功率版】平衡小車源碼(精簡入門版).rar
(213.28 KB, 下載次數: 156)
2017-9-11 00:13 上傳
點擊文件名下載附件
STM32 下載積分: 黑幣 -5
|