|
這是基于stm32F103的倒立擺,只要讀懂代碼算法,移植到F7不難
單片機(jī)源程序如下:
- #include "main.h"
- u8 Way_Angle=1; //獲取角度的算法,1:四元數(shù) 2:卡爾曼 3:互補(bǔ)濾波
- u8 Flag_Qian,Flag_Hou,Flag_Left,Flag_Right; //藍(lán)牙遙控相關(guān)的變量
- u8 Flag_Stop=1,Flag_Show=1; //停止標(biāo)志位和 顯示標(biāo)志位 默認(rèn)停止 顯示打開(kāi)
- int Encoder_Left,Encoder_Right; //左右編碼器的脈沖計(jì)數(shù)
- int Moto1,Moto2; //電機(jī)PWM變量 應(yīng)是Motor的 向Moto致敬
- int adc; //顯示溫度
- int Voltage; //電池電壓采樣相關(guān)的變量
- float Angle_Balance,Gyro_Balance,Gyro_Turn; //平衡傾角 平衡陀螺儀 轉(zhuǎn)向陀螺儀
- float Show_Data_Mb; //全局顯示變量,用于顯示需要查看的數(shù)據(jù)
- /**************************************************************************
- 函數(shù)功能:主函數(shù) 初始化系統(tǒng)和外設(shè)
- 作 者:Mini Balance
- **************************************************************************/
- int main(void)
- {
- SystemInit(); //=====系統(tǒng)初始化
- delay_init(72); //=====延時(shí)函數(shù)
- usart1_init(); //=====串口1初始化 波特率:115200
- uart3_init(72,9600); //=====串口3初始化 波特率:9600
- JTAG_Set(JTAG_SWD_DISABLE); //=====關(guān)閉JTAG接口
- JTAG_Set(SWD_ENABLE); //=====打開(kāi)SWD接口 可以利用主板的SWD接口調(diào)試
- led_init(); //=====LED初始化
- KEY_Init(); //=====按鍵初始化
- Adc_Init(); //=====初始化ADC模塊
- MiniBalance_PWM_Init(7199,0); //=====初始化PWM
- OLED_Init(); //=====初始化OLED
- Encoder_Init(); //=====初始化編碼器1
- delay_ms(200); //=====延時(shí)等待穩(wěn)定
- Timer1_Init(49,7199); //=====5MS進(jìn)一次中斷服務(wù)函數(shù) 中斷服務(wù)函數(shù)在minibalance.c里面
- while(1)
- {
- if(1==Flag_Show) oled_show(); //===顯示屏打開(kāi)
- else DataScope(); //===顯示屏關(guān)閉 打開(kāi)上位機(jī)
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
旋轉(zhuǎn)倒立擺.7z
(357.29 KB, 下載次數(shù): 24)
2019-1-4 01:16 上傳
點(diǎn)擊文件名下載附件
倒立擺
|
評(píng)分
-
查看全部評(píng)分
|