找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32F103四旋翼代码一套分享

[复制链接]
跳转到指定楼层
#
ID:359046 发表于 2018-6-26 09:55 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
以前做四轴入门时候写的代码,用的STM32F103ZET6最小系统,包括遥控器接收、6050、姿态解算、三轴PID(需要调),
可在此基础上加定高、摄像头循线、菜单等等程序
中断汇总:
tim6中断(LED闪烁中断):抢占3  响应3

tim5中断(系统运行中断):抢占1  响应0

tim4中断(PWM捕获中断):抢占0 响应3


//输入通道:TIM4
//CH1       CH2       CH3       CH4     
//PB6       PB7       PB8       PB9      
//roll      pitch     thr       yaw

//电机输出通道:TIM3
//CH1       CH2       CH3       CH4      
//PA6       PA7       PB0       PB1      



//USART1:数据输出
TX-PA9  RX-PA10


//光流传感器
spi2:
PB12    SPI2_NSS
PB13    SPI2_SCK
PB14    SPI2_MISO
PB15    SPI2_MOSI
//lcd5110
模拟spi:



2.7版本更新日志

更改key的按键io


单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "myiic.h"
  3. #include "systime.h"
  4. #include "mpu6050.h"
  5. #include "imu.h"
  6. #include "control.h"
  7. #include "rc.h"
  8. #include "motor.h"
  9. #include "delay.h"
  10. #include "stdio.h"


  11.         u8 i,key=0,j;
  12.         u8 f1,f2,f3;
  13.         u8 linelcd=1; u8 pagelcd=1;
  14.         
  15.         
  16. //GPIO初始化示例
  17. // void GPIO_Configuration(void)
  18. //  {
  19. //    GPIO_InitTypeDef GPIO_InitStructure;              //定义一个结构体
  20. //        GPIO_InitStructure.GPIO_Pin        = GPIO_Pin_2;//选择LED管脚
  21. //          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //管脚频率为50MHZ
  22. //          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //模式为推挽输出
  23. //          GPIO_Init(GPIOD, &GPIO_InitStructure);   //初始化GPIOB寄存器
  24. //    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_8;
  25. //    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  26. //    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP; //推挽输出
  27. //    GPIO_Init(GPIOA, &GPIO_InitStructure);
  28. //  }


  29. int main(void)
  30. {
  31.           SystemInit();//初始化时钟
  32.           NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置优先级分组 2
  33.       
  34.            
  35.           delay_init(72);                                                                        //延时函数初始化

  36.                
  37.     I2C_Init_IO();                                                                          // 初始化IIC(6050)                                                                                 
  38.     MPU6050_INIT();       //初始化6050
  39.     delay_ms(1000);
  40.     MPU6050_INIT();

  41.     PID_Init();//PID数值初始化
  42.           Motor_Init(25);//PWM输出初始化
  43.     RC_Init();//遥控器接收初始化(遥控器数值放在RC_CH[X]数组中)

  44.     ACC_SET_OFFSET();//加速度计水平校准
  45.           GYRO_SET_OFFSET();//陀螺仪零偏校准
  46.         //Data_Send_Offset(ACC_OFFSET.X,ACC_OFFSET.Y,ACC_OFFSET.Z,GYRO_OFFSET.X,GYRO_OFFSET.Y,GYRO_OFFSET.Z);//发送加速度计 陀螺仪偏移值
  47.           System_Time_Init();         
  48.                

  49. while(1)
  50. {                                                               


  51. }   
  52.                  

  53.         
  54.                

  55. }



复制代码

所有资料51hei提供下载:
2.7最简.rar (905.88 KB, 下载次数: 81)



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

使用道具 举报

沙发
ID:194884 发表于 2018-12-1 15:44 | 只看该作者
学习学习
回复

使用道具 举报

楼主
ID:405372 发表于 2018-11-30 17:21 | 只看该作者
我拿去学习了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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