【TI 技术资料分享】+nRF24L01无线通信程序

[复制链接]
 楼主| 必胜客A 发表于 2015-3-9 21:56 | 显示全部楼层 |阅读模式
基于MSP430F149单片机的nRF24L01无线通信程序
  1. /*******************************************************
  2. -------------------------------------------------------
  3. 通信格式:N.8.1,  9600
  4.          无校验,8个数据位,1个停止位,波特率9600
  5. ------------------------------------------------------
  6. *******************************************************/
  7. #include  <msp430x14x.h>
  8. #include  "USART.H"
  9. #include  "nRF24L01.H"
  10. /*******************************************************
  11. ---------------------延时函数--------------------------
  12. *******************************************************/
  13. void Delay(unsigned int t)
  14. {
  15.     while(t--);
  16. }
  17. /*******************************************************
  18. 函数名称:Init_Sys
  19. 功    能:系统时钟初始化
  20. 参    数:无
  21. 返回值  :无
  22. *******************************************************/
  23. void Init_Sys(void)
  24. {
  25.   unsigned char i;
  26.   //切换为XT2:
  27.   BCSCTL1&=~XT2OFF;//启动XT2时钟
  28.   do
  29.   {
  30.      IFG1 &= ~OFIFG;              //清除振荡失效标志            
  31.      for (i = 0xFF; i > 0; i--);  //延时等待XT2起振
  32.   }
  33.   while ((IFG1 & OFIFG));         //判断XT2是否起振
  34.   BCSCTL2 |= SELM_2;    //MCLK选择XT2时钟源
  35.   BCSCTL2 |= SELS;      //SMCLK选择XT2时钟
  36. }
  37. /***********************************************************
  38. --------------------------主函数----------------------------
  39. ***********************************************************/
  40. void main( void )
  41. {
  42.     unsigned char RX_FLOAG=0;
  43.     WDTCTL = WDTPW + WDTHOLD;   // 关闭看门狗
  44.     Init_Sys();                 //系统时钟初始化
  45.     init_io();                  //I/O初始化
  46.     Init_Usart();               //串口初始化
  47.     Putsting("串口初始化OK   ");
  48.     Mode();                     //发送模式与接收模式的公共配置放入一个函数先配置一下
  49.     while(NRF24L01_Check());    //检测无线模块是否存在
  50.     Putsting("nRF24L01初始化OK\n\n");
  51.     Delay(1000);
  52.     RX_Mode();                  //无线模块正常处于接收状态
  53.     while(1)
  54.     {
  55.         if(floag)
  56.         {
  57.             floag=0;
  58.             TX_Mode();
  59.             NRF24L01_TxPacket(TX_TAB);
  60.             RX_Mode();
  61.         }
  62.         else
  63.         {
  64.             RX_FLOAG=NRF24L01_RxPacket(RX_TAB);
  65.             if(RX_FLOAG==0)
  66.             {
  67.                 Putchar(RX_TAB[0]);
  68.             }
  69.         }
  70.       
  71.     }
  72. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yangjing29 发表于 2015-3-10 11:14 | 显示全部楼层
cp1149637566 发表于 2015-3-26 19:48 | 显示全部楼层
是双向通信吗?
ccw1986 发表于 2015-3-27 08:31 | 显示全部楼层
程序是很好
想请教楼主,如何学习射频的知识呢
如何画射频板子的PCB呢
仿真软件用啥?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

176

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部