标题: STM32四轴飞控源码 [打印本页]

作者: DSYdsyYSDysd520    时间: 2019-5-10 11:07
标题: STM32四轴飞控源码
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 注意,所有数据位int16格式,angle飞控端为float,发送时乘以100,上位机以int16格式接收,显示时再除以100 自定义

单片机源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include "config.h"

  3. uint8_t SYS_INIT_OK;                //系统初始化完成标志
  4. uint32_t While1_Lasttime=0;//存储while循环的时间

  5. ////////////////////////////////////////////////////////////////////////////////
  6. void SYS_INIT(void);
  7. void LOOP(void);
  8. ////////////////////////////////////////////////////////////////////////////////
  9. int main(void)
  10. {
  11.         SYS_INIT_OK=0;
  12.         SYS_INIT();
  13.         SYS_INIT_OK=1;
  14.         
  15.         IMU_CYCTIME = GET_NOWTIME(&While1_Lasttime);//更新两次读取时间间隔
  16.         while (1)
  17.         {
  18.                 LOOP();
  19.         }
  20. }
  21. ////////////////////////////////////////////////////////////////////////////////
  22. void LOOP(void)
  23. {

  24. }
  25. ////////////////////////////////////////////////////////////////////////////////
  26. void SYS_INIT(void)
  27. {
  28.         MOTO_INIT();                //马达初始化
  29.         NVIC_INIT();                //中断初始化
  30.         TIM3_INIT();                //延时函数初始化
  31.         TIM2_INIT();                //用于监测系统
  32.         LED_INIT();                        //IO初始化
  33.         LED4_OFF;                        
  34. //        EXTI1_INIT();                //外部中断初始化,接nrf24l01 irq
  35.         USART1_INIT();                //串口初始化
  36.         i2cInit();
  37.         SPI1_INIT();
  38.         NRF24L01_INIT();
  39.         SetRX_Mode();
  40. //        EXTI_GenerateSWInterrupt(EXTI_Line1);//手动进入nrf24L01中断,防止开始时irq管脚就为低电平,无法进入下降沿中断
  41.         MPU6050_INIT();
  42.         MPU6050_INIT();
  43.         SYSTICK_INIT();
  44.         PID_INIT();
  45. }
复制代码

所有资料51hei提供下载:
四轴飞控源码FLY_CONTROL.7z (417.34 KB, 下载次数: 27)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1