標(biāo)題: STM32F103四旋翼代碼一套分享 [打印本頁]

作者: ZHUOYUE1223    時(shí)間: 2018-6-26 09:55
標(biāo)題: STM32F103四旋翼代碼一套分享
以前做四軸入門時(shí)候?qū)懙拇a,用的STM32F103ZET6最小系統(tǒng),包括遙控器接收、6050、姿態(tài)解算、三軸PID(需要調(diào)),
可在此基礎(chǔ)上加定高、攝像頭循線、菜單等等程序
中斷匯總:
tim6中斷(LED閃爍中斷):搶占3  響應(yīng)3

tim5中斷(系統(tǒng)運(yùn)行中斷):搶占1  響應(yīng)0

tim4中斷(PWM捕獲中斷):搶占0 響應(yīng)3


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

//電機(jī)輸出通道:TIM3
//CH1       CH2       CH3       CH4      
//PA6       PA7       PB0       PB1      



//USART1:數(shù)據(jù)輸出
TX-PA9  RX-PA10


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



2.7版本更新日志

更改key的按鍵io


單片機(jī)源程序如下:
  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;              //定義一個(gè)結(jié)構(gòu)體
  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();//初始化時(shí)鐘
  32.           NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置優(yōu)先級(jí)分組 2
  33.       
  34.            
  35.           delay_init(72);                                                                        //延時(shí)函數(shù)初始化

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

  41.     PID_Init();//PID數(shù)值初始化
  42.           Motor_Init(25);//PWM輸出初始化
  43.     RC_Init();//遙控器接收初始化(遙控器數(shù)值放在RC_CH[X]數(shù)組中)

  44.     ACC_SET_OFFSET();//加速度計(jì)水平校準(zhǔn)
  45.           GYRO_SET_OFFSET();//陀螺儀零偏校準(zhǔn)
  46.         //Data_Send_Offset(ACC_OFFSET.X,ACC_OFFSET.Y,ACC_OFFSET.Z,GYRO_OFFSET.X,GYRO_OFFSET.Y,GYRO_OFFSET.Z);//發(fā)送加速度計(jì) 陀螺儀偏移值
  47.           System_Time_Init();         
  48.                

  49. while(1)
  50. {                                                               


  51. }   
  52.                  

  53.         
  54.                

  55. }



復(fù)制代碼

所有資料51hei提供下載:
2.7最簡.rar (905.88 KB, 下載次數(shù): 82)




作者: JIANGJING520    時(shí)間: 2018-11-30 17:21
我拿去學(xué)習(xí)了
作者: xxxx7    時(shí)間: 2018-12-1 15:44
學(xué)習(xí)學(xué)習(xí)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1