数据的发送和接收是无线收发器的主要功能,当有数据要发送时,首先通过SPI接口把所要发送的数据送给nRF905模块,设置TRX_CE、 TXEN为高以激活nRF9E5进入发送状态。无线系统自动上电,数据自动加前导码和CRC校验,然后发送数据包。具体过程如程序清单2所示。
程序清单2://-------------------//发送数据包//-------------------void TransmitPacket(INT8U *pBuf){ INT8U i; RACSN = 0; SpiReadWrite(WTP); for (i=0; i { SpiReadWrite(pBuf[i]); //写入发送缓冲 区 } RACSN = 1; TXEN = 1; TRX_CE = 1; //使能发送Delay100us(1); TRX_CE = 0; //发送完毕} 当要接收数据时,通过设置TRX_CE为高、TXEN为低,使进入接收状态。当nRF 9E5监测到和接收频率相同的载波时,载波检测(CD)被置高;当接收到有效的地址时,地址匹配(AM)被置高;当接收到有效的数据包(CRC校验正确)时,数据就绪(DR)置高。接收数据的具体程序清单不再列出。 当需要将接收到的数据通过RS-232串口输出时,首先要进行串口初始化,开启nRF9E5管脚P0.1、P0.2的第二功能,具体过程见程序清单3。 程序清单3://-------------------//串口初始化//-------------------void InitUart(void){ TH1=243; CKCON|=0x10; PCON="0x80"; // 设置波特率 SCON="0x52"; // 模式1,使能接收 TMOD&=~0x30; TMOD|=0x20; TR1=1; //定时器1开启 P0_ALT|=0x06; //串口使能 P0_DIR|=0x02; //P0.1 输入 P0_DIR&=0xfb; //P0.2输出 ES="0";} 结束语 本文基于nRF9E5和设计了一个系统,具有体积小、功耗低等优点,适用于采油厂、发电厂、钻井施工等不宜进行有线测温的场合,应用前景广阔。 欢迎访问www.autooo.net
当要接收数据时,通过设置TRX_CE为高、TXEN为低,使进入接收状态。当nRF 9E5监测到和接收频率相同的载波时,载波检测(CD)被置高;当接收到有效的地址时,地址匹配(AM)被置高;当接收到有效的数据包(CRC校验正确)时,数据就绪(DR)置高。接收数据的具体程序清单不再列出。
当需要将接收到的数据通过RS-232串口输出时,首先要进行串口初始化,开启nRF9E5管脚P0.1、P0.2的第二功能,具体过程见程序清单3。
程序清单3://-------------------//串口初始化//-------------------void InitUart(void){ TH1=243; CKCON|=0x10; PCON="0x80"; // 设置波特率 SCON="0x52"; // 模式1,使能接收 TMOD&=~0x30; TMOD|=0x20; TR1=1; //定时器1开启 P0_ALT|=0x06; //串口使能 P0_DIR|=0x02; //P0.1 输入 P0_DIR&=0xfb; //P0.2输出 ES="0";}
结束语
本文基于nRF9E5和设计了一个系统,具有体积小、功耗低等优点,适用于采油厂、发电厂、钻井施工等不宜进行有线测温的场合,应用前景广阔。