|
PID算法程序 基于四軸飛行器 CPU: STM32F103CB2.4G: NRF24L01電子羅盤:HMC5883陀螺儀+加速度計:MPU-6050 固定的傳感器通訊格式為:0X88+0XA1+0X1D+ACC XYZ+GYRO XYZ +MAG XYZ +ANGLE ROLL PITCH YAW + cyc_time +0x00 + 0x00 +0x00 注意,所有數(shù)據(jù)位int16格式,angle飛控端為float,發(fā)送時乘以100,上位機(jī)以int16格式接收,顯示時再除以100 自定義
單片機(jī)源程序如下:
- /* Includes ------------------------------------------------------------------*/
- #include "config.h"
- uint8_t SYS_INIT_OK; //系統(tǒng)初始化完成標(biāo)志
- uint32_t While1_Lasttime=0;//存儲while循環(huán)的時間
- ////////////////////////////////////////////////////////////////////////////////
- void SYS_INIT(void);
- void LOOP(void);
- ////////////////////////////////////////////////////////////////////////////////
- int main(void)
- {
- SYS_INIT_OK=0;
- SYS_INIT();
- SYS_INIT_OK=1;
-
- IMU_CYCTIME = GET_NOWTIME(&While1_Lasttime);//更新兩次讀取時間間隔
- while (1)
- {
- LOOP();
- }
- }
- ////////////////////////////////////////////////////////////////////////////////
- void LOOP(void)
- {
- }
- ////////////////////////////////////////////////////////////////////////////////
- void SYS_INIT(void)
- {
- MOTO_INIT(); //馬達(dá)初始化
- NVIC_INIT(); //中斷初始化
- TIM3_INIT(); //延時函數(shù)初始化
- TIM2_INIT(); //用于監(jiān)測系統(tǒng)
- LED_INIT(); //IO初始化
- LED4_OFF;
- // EXTI1_INIT(); //外部中斷初始化,接nrf24l01 irq
- USART1_INIT(); //串口初始化
- i2cInit();
- SPI1_INIT();
- NRF24L01_INIT();
- SetRX_Mode();
- // EXTI_GenerateSWInterrupt(EXTI_Line1);//手動進(jìn)入nrf24L01中斷,防止開始時irq管腳就為低電平,無法進(jìn)入下降沿中斷
- MPU6050_INIT();
- MPU6050_INIT();
- SYSTICK_INIT();
- PID_INIT();
- }
復(fù)制代碼
所有資料51hei提供下載:
四軸飛控源碼FLY_CONTROL.7z
(417.34 KB, 下載次數(shù): 27)
2019-5-10 18:46 上傳
點擊文件名下載附件
非常值得研究 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|