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

QQ登錄

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

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

基于MSP430的NRF24L01 低功耗無(wú)線收發(fā)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:240972 發(fā)表于 2017-10-19 16:14 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
基于MSP430的NRF24L01 低功耗無(wú)線收發(fā)程序     用于低功耗的功耗測(cè)試



單片機(jī)源程序如下:
  1. //接收函數(shù),收到數(shù)據(jù)后,通過(guò)串口顯示,串口撥特率設(shè)置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; //禁止看門(mén)狗
  27.       init_uart0();
  28.       keyIO_init();      // 普通IO 設(shè)置
  29.       
  30.        P2DIR = 0xff;                   //設(shè)置P2-BIT0口方向?yàn)檩敵?br />
  31.        P2OUT = 0xfe;                   //點(diǎn)亮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;                           // 定時(shí)器初始化配置
  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;      // 裝載數(shù)據(jù)
  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 一個(gè)數(shù)據(jù)包
  90.                       SPI_RW_Reg(WRITE_REG+STATUS,0XFF);   //清狀態(tài)寄存器
  91.                       Delay(85);//Delay(35);
  92.                       P6OUT  |= BIT0;    // 關(guān)閉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);             //   進(jìn)低功耗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. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
fason duoci.zip (126.18 KB, 下載次數(shù): 56)


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

使用道具 舉報(bào)

沙發(fā)
ID:242030 發(fā)表于 2017-10-23 11:05 | 只看該作者
贊一個(gè),正好需要
回復(fù)

使用道具 舉報(bào)

板凳
ID:373629 發(fā)表于 2018-7-17 20:57 | 只看該作者
贊一個(gè)  我真的很需要  謝謝樓主的分享
回復(fù)

使用道具 舉報(bào)

地板
ID:111843 發(fā)表于 2019-11-9 00:03 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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