找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2241|回复: 0
打印 上一主题 下一主题
收起左侧

STM32四轴飞控源码

[复制链接]
跳转到指定楼层
楼主
ID:532310 发表于 2019-5-10 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表