打印

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

[复制链接]
791|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
必胜客A|  楼主 | 2015-3-9 21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于MSP430F149单片机的nRF24L01无线通信程序 基于MSP430F149单片机的nRF24L01无线通信程序.zip (37.97 KB)
/*******************************************************
-------------------------------------------------------
通信格式:N.8.1,  9600
         无校验,8个数据位,1个停止位,波特率9600
------------------------------------------------------
*******************************************************/
#include  <msp430x14x.h>
#include  "USART.H"
#include  "nRF24L01.H"
/*******************************************************
---------------------延时函数--------------------------
*******************************************************/
void Delay(unsigned int t)
{
    while(t--);
}
/*******************************************************
函数名称:Init_Sys
功    能:系统时钟初始化
参    数:无
返回值  :无
*******************************************************/
void Init_Sys(void)
{
  unsigned char i;
  //切换为XT2:
  BCSCTL1&=~XT2OFF;//启动XT2时钟
  do
  {
     IFG1 &= ~OFIFG;              //清除振荡失效标志            
     for (i = 0xFF; i > 0; i--);  //延时等待XT2起振
  }
  while ((IFG1 & OFIFG));         //判断XT2是否起振
  BCSCTL2 |= SELM_2;    //MCLK选择XT2时钟源
  BCSCTL2 |= SELS;      //SMCLK选择XT2时钟
}
/***********************************************************
--------------------------主函数----------------------------
***********************************************************/
void main( void )
{
    unsigned char RX_FLOAG=0;
    WDTCTL = WDTPW + WDTHOLD;   // 关闭看门狗
    Init_Sys();                 //系统时钟初始化
    init_io();                  //I/O初始化
    Init_Usart();               //串口初始化
    Putsting("串口初始化OK   ");
    Mode();                     //发送模式与接收模式的公共配置放入一个函数先配置一下
    while(NRF24L01_Check());    //检测无线模块是否存在
    Putsting("nRF24L01初始化OK\n\n");
    Delay(1000);
    RX_Mode();                  //无线模块正常处于接收状态
    while(1)
    {
        if(floag)
        {
            floag=0;
            TX_Mode();
            NRF24L01_TxPacket(TX_TAB);
            RX_Mode();
        }
        else
        {
            RX_FLOAG=NRF24L01_RxPacket(RX_TAB);
            if(RX_FLOAG==0)
            {
                Putchar(RX_TAB[0]);
            }
        }
      
    }
}


相关帖子

沙发
yangjing29| | 2015-3-10 11:14 | 只看该作者

使用特权

评论回复
板凳
cp1149637566| | 2015-3-26 19:48 | 只看该作者
是双向通信吗?

使用特权

评论回复
地板
ccw1986| | 2015-3-27 08:31 | 只看该作者
程序是很好
想请教楼主,如何学习射频的知识呢
如何画射频板子的PCB呢
仿真软件用啥?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

176

帖子

2

粉丝