找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5151|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

HT-Hawk四軸飛行器地面站與stm32下位機(jī)測(cè)試程序下載 恒拓飛控資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
恒拓飛控地面控制系統(tǒng)



【  請(qǐng)?jiān)试S軟件訪問(wèn)、操作注冊(cè)表  】

1、15個(gè)獨(dú)立通道的啟用和關(guān)閉可通過(guò)單擊通道對(duì)應(yīng)的數(shù)碼管來(lái)調(diào)整
2、雙擊通道對(duì)應(yīng)的數(shù)碼管來(lái)調(diào)整通道顏色
3、各通道顏色及開(kāi)關(guān)狀態(tài)均會(huì)在軟件關(guān)閉時(shí)保存在電腦內(nèi)
4、各項(xiàng)PID參數(shù)在重啟軟件后不會(huì)清空,保持關(guān)閉前的數(shù)據(jù)
5、RC通道最大最小值可設(shè)定
6、根據(jù)串口通訊狀況及下位機(jī)字節(jié)發(fā)送速度來(lái)調(diào)整幀時(shí)間間隔,以確保上位機(jī)解析正確
7、可根據(jù)電腦配置情況來(lái)調(diào)整UI刷新率(fps),以防止軟件占用過(guò)多系統(tǒng)資源及卡頓

單片機(jī)源程序如下:

  1. /*

  2.     上位機(jī)測(cè)試程序,
  3.                
  4.                 下位機(jī)循環(huán)發(fā)送各功能模塊數(shù)據(jù)幀至上位機(jī)。

  5.    
  6.                 Hto_ES.C 為協(xié)議幀生成庫(kù)函數(shù)
  7.    

  8. */



  9. #include <stm32f10x.h>
  10. #include <stdlib.h>
  11. #include "sys.h"
  12. #include "usart.h"               
  13. #include "delay.h"       
  14. #include "led.h"
  15. #include "lcd.h"          
  16. #include "adc.h"
  17. #include "dma.h"
  18. #include "Hto_ES.h"

  19.                                        
  20. float Tmp,test_1,test_2,test_3;

  21. int i,F,sw;

  22. int main(void)
  23. {                         
  24.   Stm32_Clock_Init(9);    //系統(tǒng)時(shí)鐘設(shè)置
  25.         delay_init(72);                      //延時(shí)初始化
  26.        
  27.         uart_init(72,115200);     //串口1初始化

  28.         LCD_Init();                                //初始化液晶                  
  29.         LED_Init();             //LED初始化

  30.         POINT_COLOR=RED;        //設(shè)置字體為紅色       
  31.        
  32.         BACK_COLOR = BLACK;
  33.        
  34.         LCD_Clear(BLACK);
  35.        
  36.         LCD_ShowString(80,0,200,16,16,"ACE-Tech");       

  37.   POINT_COLOR = WHITE;       
  38.        
  39.         sw = 0;
  40.        
  41.         test_1 = test_2 = test_3 = 0;
  42.        
  43.        
  44. //////////////////////////////////////////////////////////////////////       
  45.        

  46.         while(1)            
  47.         {        
  48.           Tmp = 1.0;

  49.                 Tmp += 0.184;
  50.                
  51.     CH1_data  = rand()%200;
  52.                 CH2_data  = rand()%200;  //15通道獨(dú)立數(shù)據(jù)
  53.                 CH3_data  = rand()%200;
  54.                 CH4_data  = rand()%200;
  55.                 CH5_data  = rand()%200;
  56.                 CH6_data  = rand()%200;
  57.                 CH7_data  = rand()%200;
  58.                 CH8_data  = rand()%200;
  59.                 CH9_data  = rand()%200;
  60.                 CH10_data = rand()%200;
  61.                 CH11_data = rand()%200;
  62.                 CH12_data = rand()%200;
  63.                 CH13_data = rand()%200;
  64.                 CH14_data = rand()%200;
  65.                 CH15_data = rand()%200;

  66. //-------------------------------------------------------------------------------
  67.                
  68.                 Longitude_val = 11.234; //經(jīng)度
  69.                 Latitude_Val  = 15.634; //緯度
  70.                 Altitude_Val  = 56.687; //高度
  71.                 Dir_Val       = 98.685; //方位角
  72.                 SPD_Val       = 12.568; //速度
  73.                
  74.                 Voltage_Val    = 11.25*100; //假定電池電壓11.25v,放大100倍
  75.                 Temperture_Val = 25.67*100; //假定溫度為25.67℃,放大100倍
  76.                 Satellite_Val  = 7;         //假定7顆可用衛(wèi)星
  77.                
  78.                 Location_Sta = 1;   //假定定位ok
  79.                
  80.                 Longitude_WE = 'W';
  81.                 Latitude_NS  = 'N';

  82. //-------------------------------------------------------------------------------

  83.     Pitch_Val =  test_1;
  84.                 Roll_Val  =  test_2;    //測(cè)試姿態(tài)數(shù)據(jù)
  85.                 Yaw_Val   =  test_3;

  86.     test_1 += 0.078;
  87.                 test_2 += 0.088;
  88.                 test_3 += 0.098;
  89.                
  90.                 if ( test_1 >= 180 ) test_1 = -test_1;
  91.                 if ( test_2 >= 180 ) test_2 = -test_2;
  92.                 if ( test_3 >= 360 ) test_3 = 0;
  93.                
  94. //-------------------------------------------------------------------------------

  95.     Gyro_X =  0.065;
  96.                 Gyro_Y = -5.896;
  97.                 Gyro_Z =  0.102;
  98.                
  99.                 Accel_X =  0.008;
  100.                 Accel_Y = -0.003;  //傳感器校準(zhǔn)
  101.                 Accel_Z =  1.021;
  102.                
  103.                 Mag_X =  85.659;
  104.                 Mag_Y = 268.475;
  105.                 Mag_Z =   5.784;

  106. //-------------------------------------------------------------------------------
  107.                
  108.                 PoressBar_1 = 700;
  109.                 PoressBar_2 = 800;
  110.                 PoressBar_3 = 900;
  111.                 PoressBar_4 = 1000;
  112.                 PoressBar_5 = 1200;
  113.                 PoressBar_6 = 1400;  //RC 通道數(shù)據(jù)
  114.                 PoressBar_7 = 1600;
  115.                 PoressBar_8 = 1800;
  116.                 PoressBar_9 = 2000;
  117.                
  118. //-------------------------------------------------------------------------------               
  119.    
  120.                 Pitch_PID_P = -569;
  121.                 Pitch_PID_I = 48;
  122.                 Pitch_PID_D = 79;
  123.                
  124.                 Roll_PID_P = 89;
  125.                 Roll_PID_I = 21;
  126.                 Roll_PID_D = 34;
  127.                
  128.                 Yaw_PID_P = 14;
  129.                 Yaw_PID_I = 10589;
  130.                 Yaw_PID_D = 30549;
  131.                
  132.                 Alt_PID_P = -30468;
  133.                 Alt_PID_I = -26;
  134.                 Alt_PID_P = -1;
  135.                
  136.                 Pos_PID_P = 5684;
  137.                 Pos_PID_I = -2;
  138.                 Pos_PID_D = 568;
  139.                
  140. //////////////////////////////////////////////////////////////////////////////////
  141. //協(xié)議幀生成               
  142.                
  143.                 switch(sw) //循環(huán)發(fā)送各模塊數(shù)據(jù)
  144.                 {
  145.                         case 1: F = HtoEs_Chart_Data_Generate();    break;  //測(cè)試獨(dú)立通道,返回需發(fā)送字節(jié)數(shù)
  146.                         case 2: F = HtoEs_GPS_Data_Generate();      break;  //測(cè)試GPS,返回需發(fā)送字節(jié)數(shù)         
  147.       case 3: F = HtoEs_Attitude_Data_Generate(); break;  //測(cè)試姿態(tài),返回需發(fā)送字節(jié)數(shù)       
  148.       case 4: F = HtoEs_RC_Data_Generate();       break;  //測(cè)試RC通道,返回需發(fā)送字節(jié)數(shù)       
  149.       case 5: F = HtoEs_PID_Data_Generate();      break;  //測(cè)試PID參數(shù),返回需發(fā)送字節(jié)數(shù)                               
  150.       case 6: F = HtoEs_Senosrs_Data_Generate();  break;  //測(cè)試傳感器標(biāo)定,返回需發(fā)送字節(jié)數(shù)                                       
  151.                         case 7: sw = 0; break;
  152.                 }
  153.                
  154.                 sw++;

  155. //////////////////////////////////////////////////////////////////////////////////
  156. // 發(fā)送部分
  157.                
  158.           for( i = 0 ; i < F; i++)  //循環(huán)發(fā)送,直到發(fā)送完畢   
  159.                 {
  160.                   while((USART1->SR&0X40)==0);
  161.             USART1->DR = HtoEs_OutPut_Buffer[i];      
  162.                 }
  163.   
  164.      delay_ms(3);  //幀空閑時(shí)間
  165.                  
  166.                  LED1=!LED1;            
  167.   }
  168. }
復(fù)制代碼

所有資料51hei提供下載:
HT-Hawk四軸飛行器地面站.rar (2.32 MB, 下載次數(shù): 52)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:418578 發(fā)表于 2019-7-6 02:40 | 只看該作者
謝謝啦
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表