微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 2.4G无线发射模块nRF2402应用

2.4G无线发射模块nRF2402应用

时间:09-21 来源:互联网 点击:
  花了我一个下午的时间,终于调试好了nRF2402无线发射模块,有一点值得注意的,nRF2402是单独发射模块,单通道的,具体应用和nRF2401差不多,就是值得注意的是配置控制字(Configuration Word)不一样。



  nRF2402模块引脚图如下:
  


  值得注意到是nRF2402配置控制字和nRF2401不一样,具体看datasheet,我摘录了一部分如下
  


  有4个字节的控制字,其中D0-D19是需要配置的,D31-D20空,可以配置为0.
  源程序:
  /***********************************************************/
  /*nRF2402学习板V1.0 */
  /*创建人 :郑 文(ClimberWin) 日期:2010-02-20 */
  /*功能描述:nRF2402无线数据传输 */
  /*芯片 :STC89C51RC 晶振 11.0592M */
  /*版本 :V1.0 */
  /***********************************************************/
  //测试OK,功能描述:
  //8个LED接在P0口,低电平有效
  //按键1是LED加 按键2LED减 按键3 LED全亮 按键4 LED全灭
  //串口输出数据
  //添加串口发送数据给单片机再无线发送
  #include
  #include
  #include
  #define uchar unsigned char
  #define uint unsigned int
  #define ulong unsigned long
  //端口定义
  ///////LED定义//////////
  sbit LED1 = P0^0;
  sbit LED2 = P0^1;
  sbit LED3 = P0^2;
  sbit LED4 = P0^3;
  sbit LED5 = P0^4;
  sbit LED6 = P0^5;
  sbit LED7 = P0^6;
  sbit LED8 = P0^7;
  ///////按键定义////////////
  sbit K1 = P3^3;
  sbit K2 = P3^4;
  sbit K3 = P3^5;
  sbit K4 = P3^6;
  sbit speaker=P3^7;//蜂鸣器输出引脚
  /*****************************************/
  void speakertest(void); //蜂鸣器程序
  void init_rs232(void); //串口初始化
  void keytest(void); //按键测试程序
  /*****************************************/
  /* 串口通信初始化设置 */
  void init_rs232(void)
  {
  SCON=0x50;
  PCON=0x00;
  TH1=0xFD; //波特率 9600 11.0592MHZ 时候
  TL1=0XFD;
  TMOD=0X20;
  TR1=1;
  }
  void speakertest(void)//蜂鸣器程序
  {
  unsigned char i;
  for(i=0;i ST_BY_mode | MAX 3ms | name: Tpd2sby |
  nRF2402_CS=1; //进入配置模式Configuration
  ////4个字节的配置字////////////// datasheet(page17 of 37)
  for (i=0;i<4;i++)
  {
  nRF2402_Write_Byte(nRF2402_Config_Word[ i]);
  }
  delayms(1);
  nRF2402_CS=0; //nRF2402_CS 置低使配置有效 datasheet(page26 of 37);
  }
  /*********设置发射模式子程序*********/
  void nRF2402_Transmit_Mode(void)
  {
  //设置为Active(Tx)模式
  nRF2402_PWR_UP=1;
  nRF2402_CE=1;
  nRF2402_CS=0;
  delayms(1);
  }
  /********发送数据子程序*********/
  void nRF2402_Transmit_Data(uchar temp[]) //datasheet(page22 of 37);
  {
  uchar i;
  nRF2402_CE=1;
  delayms(1);
  for (i=0;i<(ADDR_W/8);i++)//写入接收地址
  {
  nRF2402_Write_Byte(Channel_Addr[ i]);
  }
  for (i=0;i<(DATA1_W/8);i++)//写入需要发送的数据
  {
  nRF2402_Write_Byte(temp[ i]);
  }
  nRF2402_CE=0; //nRF2402_CE 置低使发送有效
  delayms(1);
  }
  #endif

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top