欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4503|回復: 2
收起左側

標準版麥輪小車STM32源碼

[復制鏈接]
ID:397617 發表于 2019-1-11 08:59 | 顯示全部樓層 |閱讀模式
單片機源程序如下:
  1. #include "sys.h"
  2. u8 Flag_Left,Flag_Right,Flag_Direction=0;   //藍牙遙控相關的變量
  3. u8 Flag_Stop=1,Flag_Show=0;                 //停止標志位和 顯示標志位 默認停止 顯示打開
  4. int Encoder_A,Encoder_B,Encoder_C,Encoder_D;          //編碼器的脈沖計數
  5. long int Position_A,Position_B,Position_C,Position_D,Rate_A,Rate_B,Rate_C,Rate_D; //PID控制相關變量
  6. int Encoder_A_EXTI;                       //通過外部中斷讀取的編碼器數據                       
  7. long int Motor_A,Motor_B,Motor_C,Motor_D;        //電機PWM變量
  8. long int Target_A,Target_B,Target_C,Target_D;     //電機目標值
  9. int Voltage;                             //電池電壓采樣相關的變量
  10. float Show_Data_Mb;                      //全局顯示變量,用于顯示需要查看的數據                        
  11. u8 delay_50,delay_flag;                          //延時相關變量
  12. u8 Run_Flag=0;                                                                                                  //藍牙遙控相關變量和運行狀態標志位
  13. u8 rxbuf[8],Urxbuf[8],CAN_ON_Flag=0,Usart_ON_Flag=0,Usart_Flag,PID_Send,Flash_Send;  //CAN和串口控制相關變量
  14. u8 txbuf[8],txbuf2[8],Turn_Flag;             //CAN發送相關變量
  15. float Pitch,Roll,Yaw,Move_X,Move_Y,Move_Z;   //三軸角度和XYZ軸目標速度
  16. u16 PID_Parameter[10],Flash_Parameter[10];  //Flash相關數組
  17. float        Position_KP=40,Position_KI=0,Position_KD=40;  //位置控制PID參數
  18. float Velocity_KP=10,Velocity_KI=10;                  //速度控制PID參數
  19. int RC_Velocity=30,RC_Position=3000;         //設置遙控的速度和位置值
  20. int main(void)
  21. {
  22.         Stm32_Clock_Init(9);            //=====系統時鐘設置
  23.         delay_init(72);                 //=====延時初始化
  24.         JTAG_Set(JTAG_SWD_DISABLE);     //=====關閉JTAG接口
  25.         JTAG_Set(SWD_ENABLE);           //=====打開SWD接口 可以利用主板的SWD接口調試
  26.         LED_Init();                     //=====初始化與 LED 連接的硬件接口
  27.         KEY_Init();                     //=====按鍵初始化
  28.         if(MODE==0)Run_Flag=1;          //=====啟動的過程中,根據模式選擇開關確定進入位置模式還是速度模式
  29.         else Run_Flag=0;                //=====啟動的過程中,根據模式選擇開關確定進入位置模式還是速度模式
  30.         OLED_Init();                    //=====OLED初始化
  31.         uart_init(72,128000);           //=====串口1初始化
  32.         uart2_init(36,9600);            //=====串口2初始化
  33.   uart3_init(36,115200);          //=====串口3初始化
  34.         Encoder_Init_TIM2();            //=====編碼器接口
  35.         Encoder_Init_TIM3();            //=====編碼器接口
  36.         Encoder_Init_TIM4();            //=====初始化編碼器C
  37.         Encoder_Init_TIM5();            //=====初始化編碼器D
  38.         Adc_Init();                     //=====adc初始化
  39.         IIC_Init();                     //=====IIC初始化
  40.   MPU6050_initialize();           //=====MPU6050初始化       
  41.   DMP_Init();                     //=====初始化DMP     
  42.         MiniBalance_PWM_Init(7199,0);   //=====初始化PWM 10KHZ,用于驅動電機
  43.         if(KEY==0) Flash_Read();        //=====讀取Flash里面的參數
  44.   EXTI_Init();                    //=====MPU6050 5ms定時中斷初始化
  45.   CAN1_Mode_Init(1,2,3,6,0);      //=====CAN初始化
  46.        
  47.         while(1)
  48.                 {               
  49.                   if(Flash_Send==1)          //寫入PID參數到Flash,由app控制該指令
  50.                         {
  51.                                 Flash_Write();       
  52.                                 Flash_Send=0;       
  53.                         }       
  54.             if(Flag_Show==0)           //使用MiniBalance APP和OLED顯示屏
  55.                         {
  56.                                 APP_Show();                      
  57.                                 oled_show();             //===顯示屏打開
  58.             }
  59.             else                       //使用MiniBalance上位機 上位機使用的時候需要嚴格的時序,故此時關閉app監控部分和OLED顯示屏
  60.                   {
  61.                                 DataScope();             //開啟MiniBalance上位機
  62.                         }
  63.               CAN1_SEND();             //CAN發送                       
  64.                         delay_flag=1;       
  65.                         delay_50=0;
  66.                         while(delay_flag);               //通過MPU6050的INT中斷實現的50ms精準延時                               
  67.                 }
  68. }
復制代碼

所有資料51hei提供下載:
1.標準版麥輪小車源碼.7z (173.45 KB, 下載次數: 83)


回復

使用道具 舉報

ID:1 發表于 2019-1-11 14:50 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

ID:621885 發表于 2020-6-28 22:10 | 顯示全部樓層
為社么打不開了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表