久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

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

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

基于stm32的四軸遙控程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:225113 發(fā)表于 2017-8-6 09:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
可能寫(xiě)得不太好啊  呵呵
所有資料51hei提供下載:
yaokong_heise.rar (305.16 KB, 下載次數(shù): 33)

單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "head.h"
  3. #include "key.h"
  4. /*******************************************************
  5. 前后  Get_Adc_Average(11,5);
  6. 左右  Get_Adc_Average(10,5);
  7. 油門(mén) Get_Adc_Average(2,5);
  8. 旋轉(zhuǎn) Get_Adc_Average(1,5);

  9. *******************************************************/
  10. /*
  11. 發(fā)送的數(shù)組
  12. 0:0X12 校驗(yàn)碼
  13. 1:起飛標(biāo)志      1:可以起飛 0:不可起飛 2:參數(shù)調(diào)節(jié)
  14. 2:前后方向控制  0:停止 1:后  2:前
  15. 3:左右方向控制  0:停止 1:左  2:右
  16. 4:油門(mén)控制      0:停止 1:下降 2:上升
  17. 5:旋轉(zhuǎn)控制      0:停止 1:逆時(shí)針 2:順時(shí)針
  18. */
  19. u8 nrf_send[6];
  20. void xianshi_fly(void);

  21. void check_main(void);
  22. //按鍵參數(shù)
  23. extern key_type key;
  24. //接收信號(hào)標(biāo)志
  25. u8 jieshou_error=0;
  26. //搖桿電位器參數(shù)
  27. extern yaogan yaogan_ad;
  28. //通用參數(shù)
  29. extern tongyong_type tongyong;
  30. /*
  31. 起飛標(biāo)志
  32. 值為0 可以起飛
  33.     1 初始化未完成
  34. */
  35. u8 jishen_error=0;

  36. int main(void)  
  37. {
  38.         u16 t=0;
  39.         u8 tmp_buf_rec[4];
  40.         nrf_send[1]=0;  //不可起飛 定時(shí)器開(kāi)啟后可以起飛
  41.         nrf_send[0]=0x12;
  42.         delay_init();//初始化延時(shí)函數(shù)
  43.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  44.         led_init();  //GPIO初始化
  45.         ad_init();   //AD初始化
  46.         key_init();
  47.         OLED_Init();
  48.         OLED_Clear();
  49.         canshu_chushihua();
  50.         OLED_ShowString(20,3,"WAIT...",16);
  51.         NRF24L01_Init(); //NRF24L01初始化
  52.         while(NRF24L01_Check())//檢測(cè)NRF24L01是否存在
  53.         {

  54.                 OLED_ShowString(20,5,"NRF_ERROR",16);
  55.         }
  56.         OLED_ShowString(20,5,"         ",16);
  57.         //等待接收機(jī)身初始化結(jié)果
  58.         NRF24L01_RX_Mode();  //接收模式
  59.         delay_ms(3000);
  60.         while(NRF24L01_RxPacket(tmp_buf_rec))//一旦接收到信息,則顯示出來(lái).
  61.         {
  62.                 delay_ms(1);
  63.                 t++;
  64.                 if(t>1000) break;
  65.                
  66.         }
  67.         tongyong.dianya_jishen=tmp_buf_rec[2]+256;
  68.         //機(jī)身電壓顯示
  69.         OLED_ShowNum(8*10,0,tongyong.dianya_jishen/100,1,16);
  70.         OLED_ShowString(8*11,0,".",16);
  71.         OLED_ShowNum(8*12,0,tongyong.dianya_jishen%100,2,16);
  72.         OLED_ShowString(0,0,"fus power:",16);
  73.         //機(jī)身狀態(tài)返回
  74.         if(tmp_buf_rec[3]==0)
  75.         {
  76.                 OLED_ShowString(20,5,"FUS OK!",16);
  77.         }
  78.         else if(tmp_buf_rec[3]==1)
  79.         {
  80.                 jishen_error=1;
  81.                 OLED_ShowString(20,5,"MPU ERROR!",16);
  82.         }
  83.         else if(tmp_buf_rec[3]==2)
  84.         {
  85.                 jishen_error=1;
  86.                 OLED_ShowString(20,5,"NRF ERROR!",16);
  87.         }
  88.         else if(tmp_buf_rec[3]==3)
  89.         {
  90.                 jishen_error=1;
  91.                 OLED_ShowString(20,5,"POWER LOW!",16);
  92.         }
  93.         if(jieshou_error==1)
  94.         {
  95.                 OLED_ShowString(20,5,"REC ERROR!",16);
  96.         }
  97.         NRF24L01_TX_Mode();  //接收模式
  98.         /***********此處需改***************/
  99.         //主函數(shù)循環(huán)函數(shù)
  100.         check_main();
  101. }
  102. void check_main(void)
  103. {
  104.         int ceshi_x0,ceshi_y0,ceshi_x1,ceshi_y1;
  105.         u8 t=0;
  106.         OLED_ShowString(20,3,"INIT OK!",16);
  107.         while(1)
  108.         {
  109.                 if(nrf_send[1]!=2)   //發(fā)送函數(shù)
  110.                 {
  111.                         if(NRF24L01_TxPacket(nrf_send)==TX_OK)
  112.                         {
  113.                                 LED1=!LED1;
  114.                         }
  115.                         else
  116.                         {
  117.                                 LED3=!LED3;
  118.                         }
  119.                 }
  120.                 //起飛操作:兩搖桿拉至最低保持一秒
  121.                 if(nrf_send[1]==0)
  122.                 {
  123.                         
  124.                         ceshi_x0=Get_Adc_Average(10,5);
  125.                         ceshi_y0=Get_Adc_Average(2,5);
  126.                         if(ceshi_x0<100&&ceshi_y0<100)
  127.                         {
  128.                                 delay_ms(10);
  129.                                 ceshi_x1=Get_Adc_Average(10,5);
  130.                                 ceshi_y1=Get_Adc_Average(2,5);
  131.                                 if(ceshi_y1<100&&ceshi_x1<100)
  132.                                 {
  133.                                         t++;
  134.                                         if(jishen_error==0&&t>10)
  135.                                         {
  136.                                                 OLED_Clear();
  137.                                                 nrf_send[1]=1;  //可以起飛
  138.                                                 xianshi_fly();
  139.                                                 time3_init(10);
  140.                                         }
  141.                                 }
  142.                                 else
  143.                                 {
  144.                                         t=0;
  145.                                 }
  146.                         }
  147.                         
  148.                         
  149.                 }
  150.         }
  151. }










  152. void xianshi_fly(void)
  153. {

  154.         OLED_ShowCHinese(85,0,0);  //上
  155.         OLED_ShowCHinese(85,4,1);  //下
  156.         OLED_ShowCHinese(69,2,2);   //左
  157.         OLED_ShowCHinese(101,2,3);   //右

  158.         OLED_ShowString(0,0,"Y:",16);
  159.         OLED_ShowString(0,4,"X:",16);
  160. }

復(fù)制代碼



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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女在线观看 | 成人中文字幕av | 69性欧美高清影院 | 精品国产免费一区二区三区五区 | 91精品国产综合久久婷婷香蕉 | 精品欧美一区二区三区 | 亚洲精品68久久久一区 | 最新中文字幕在线 | 亚洲图片视频一区 | 大学生a级毛片免费视频 | 欧美中文一区 | 成人网在线 | 免费大黄视频 | 中文字幕在线看人 | 97碰碰碰 | 国产高清精品一区二区三区 | 日日夜夜天天久久 | 亚洲欧美精品 | 亚洲欧美在线一区 | 中文字幕亚洲欧美日韩在线不卡 | 日韩成年人视频在线 | 精品日韩一区 | 在线a视频 | 亚洲午夜久久久 | 中文字幕 国产 | 阿v视频在线观看 | 九九精品在线 | 亚洲高清在线 | 人妖videosex高潮另类 | 蜜桃视频一区二区三区 | 成人欧美一区二区三区1314 | 2019精品手机国产品在线 | 一级特黄色毛片 | 欧美日韩久久 | 久久久久久久国产 | 精产国产伦理一二三区 | 亚洲精品福利在线 | 妖精视频一区二区三区 | 久久久久国产精品一区二区 | 超碰91在线| 精品99久久久久久 |