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
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
- 系统安全之解开恶意锁上的注册表 (01-05)
- 触摸屏基本原理(04-16)
- OLED发光材料测试电源控制部分的结构设计(04-26)
- 打造数据业务链,迎接MobileData2.0时代(04-14)
- 安华高发布0603表面封装发光二极管,适用于超薄手机(11-11)
- ADI最新LED驱动器让照相手机摄像图像质量得以改善(11-11)