找回密码
 立即注册

QQ登录

只需一步,快速开始

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

V068飞控程序

[复制链接]
跳转到指定楼层
楼主
ID:192137 发表于 2017-10-19 17:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
飞控源程序所有资料51hei提供下载:
V068飞控.rar (68.57 KB, 下载次数: 7)

单片机源程序如下:
  1. //接收函数,收到数据后,通过串口显示,串口拨特率设置9600
  2. #include <msp430x14x.h>
  3. #include "stdio.h"
  4. #include "common.h"
  5. #include "nrf2401.h"
  6. #include "key.h"
  7. #include "adc.h"
  8. #include "oled.h"
  9. #include "cc1101.h"

  10. unsigned int adczhi;
  11. unsigned char  adl,adh,key;
  12. char fasonflag,cishuflag;

  13. char  RxBuf[32]=
  14.       { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  15.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  16.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  17.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  18. char TxBuf[32]=
  19.       { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  20.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  21.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  22.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
  23. void  main()
  24. {
  25.       InitSys();
  26.       WDTCTL = WDTPW + WDTHOLD; //禁止看门狗
  27.       init_uart0();
  28.       keyIO_init();      // 普通IO 设置
  29.       
  30.        P2DIR = 0xff;                   //设置P2-BIT0口方向为输出
  31.        P2OUT = 0xfe;                   //点亮D1
  32.        unsigned char i=0;
  33.        int j=0;
  34.       
  35.       
  36.        RF24L01_IO_set();
  37.        P6OUT  &= ~BIT0;
  38.        init_NRF24L01T() ;   nRF24L01_TxPacket(TxBuf);        // Transmit Tx buffer data   
  39.     // init_NRF24L01R() ;
  40.    
  41.       
  42.       ADC_init ();
  43.       OLED_Init();     //初始化OLED  
  44.       OLED_Clear();     //oled 清屏
  45.       OLED_ShowString(0,0,"hello word");
  46.       
  47.       TBCCTL0 = CCIE;                           // 定时器初始化配置
  48.       TBCCR0 = 65535;
  49.       TBCTL = TBSSEL_1 + MC_2;                  // SMCLK, contmode
  50.       _EINT();
  51.       _BIS_SR( LPM3_bits + GIE);                 // Enter LPM0 w/ interrupt
  52.       
  53.       P2OUT = 0xbb;
  54.       P2DIR = 0xff;
  55.       P2OUT = 0xff;
  56.    
  57.       P3DIR = 0xff;
  58.       P3OUT = 0xff;
  59.       
  60.       P4DIR = 0xff;
  61.       P4OUT = 0xff;
  62.    
  63.       P5DIR = 0xff;
  64.       P5OUT = 0xff;
  65.       
  66.       while(1)
  67.       {

  68.          
  69.                     if( fasonflag==1  )
  70.                     {  
  71.                     
  72.             
  73.                         
  74.                        adczhi = get_ADC () ;   //  读取AD值
  75.                         
  76.             //                      OLED_ShowString(0,3,"adc");   
  77.             //                      OLED_ShowChar(40,3,adczhi/1000+0x30);
  78.             //                      OLED_ShowChar(50,3,adczhi%1000/100+0x30);
  79.             //                      OLED_ShowChar(60,3,adczhi%100/10+0x30);
  80.             //                      OLED_ShowChar(70,3,adczhi%10+0x30);
  81.                         
  82.                         TxBuf[0] =  0x01; //(char)adczhi;      // 装载数据
  83.                         TxBuf[1] =  0x01; //(char)(adczhi>>8);
  84.                         TxBuf[2] =  i;
  85.                         
  86.                      
  87.                       P6OUT  &= ~BIT0;            //mos管 打通
  88.                       init_NRF24L01T() ;          //初始化NRF
  89.                       nRF24L01_TxPacket(TxBuf);           // fasong 一个数据包
  90.                       SPI_RW_Reg(WRITE_REG+STATUS,0XFF);   //清状态寄存器
  91.                       Delay(85);//Delay(35);
  92.                       P6OUT  |= BIT0;    // 关闭mos管
  93.                      
  94.                      j=!j;  i++;
  95.                      if(i==250) { i=0;  }
  96.                      
  97.                        
  98.                      }
  99.         else {
  100.               TBCTL = TBSSEL_1  + MC_2;
  101.              _BIS_SR(LPM3_bits +GIE);             //   进低功耗3
  102. //             _BIS_SR(LPM3_bits +GIE);
  103.              }
  104.    
  105.      }
  106. }

  107. // Timer B0 interrupt service routine
  108. #pragma vector=TIMERB0_VECTOR
  109. __interrupt void Timer_B (void)
  110. {
  111.    //_BIS_SR( 0x0000 + GIE);                 // Enter LPM0 w/ interrupt
  112.   // TACTL = TASSEL_2 +ID_3 + MC_0;   
  113. ……………………

  114. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码




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

使用道具 举报

沙发
ID:380499 发表于 2018-7-29 16:44 | 只看该作者
四轴的?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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