理论教育 基础RF操作,点对点PANID和信道的配置

基础RF操作,点对点PANID和信道的配置

时间:2023-06-27 理论教育 版权反馈
【摘要】:点对点PANID和信道的配置BasicRF操作包括启动、发送、接收三个环节。创建basicRfCfg_t类型变量basicRfConfig,并初始化其中的成员。在basic_rf.h文件上可以找到basicRfCfg_t数据结构的定义。第5行,为basicRfCfg_t型结构体变量basicRfConfig.myAddr赋值,宏定义SWITCH_ADDR为0x2520,即发射模块的本机地址。新数据包信息存放在basicRfRxInfo_t型结构体变量rxi中。

基础RF操作,点对点PANID和信道的配置

点对点PANID和信道的配置

BasicRF操作包括启动、发送、接收三个环节。

1.启动

启动过程包括:初始化开发板的硬件外设和配置I/O端口,设置无线通信的网络ID、信道、接收和发送模块地址、安全加密等参数。

(1)创建basicRfCfg_t类型变量basicRfConfig,并初始化其中的成员。

在basic_rf.h文件上可以找到basicRfCfg_t数据结构的定义。

注意:首先要确定两个通信模块的网络ID和通信信道一致,其次设置各模块的识别地址,即模块的地址或编号。

(2)相关参数宏定义。

(3)调用halBoardInit( )函数,对硬件外设和I/O端口进行初始化,void halBoardInit(void)函数在hal_board.c文件中。

(4)调用halRfInit( )函数,打开射频模块,设置默认配置选项,允许自动确认和允许随机数产生。

2.发送

创建一个buffer,把数据放入其中,调用basicRfSendPacket( )函数发送数据。在该工程中,light_switch.c文件中的appSwitch( )函数是用来发送数据的,appSwitch( )函数代码如下,请注意删除了液晶显示代码。

(1)上述代码的第3行,把要发送的数据LIGHT_TOGGLE_CMD(宏定义该值为0)放到buffer中,数组pTxData就是发送的buffer,即把要发送的数据存放到该数组中。

(2)第5行,为basicRfCfg_t型结构体变量basicRfConfig.myAddr赋值,宏定义SWITCH_ADDR为0x2520,即发射模块的本机地址。(www.daowen.com)

(3)第6行,调用basicRfInit(&basicRfConfig)初始化函数,负责调用halRfInit( )配置参数,设置中断等。在basic_rf.c代码中可以找到uint8 basicRfInit(basicRfCfg_t* pRfConfig)。

(4)第12行,调用halButtonPushed( ),查看按键状态,如该函数值为0,说明按键按下,按键连接的外围电路应为上拉模式。

(5)第14行,调用发送函数basicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_ LENGTH),该函数的形参数格式是:basicRfSendPacket(uint16 destAddr,uint8* pPayload,uint8 length)。

① destAddr是发送的目标地址,实参是LIGHT_ADDR,即接收模块的地址。

② pPayload是指向发送缓冲区的地址,实参是pTxData,该地址的内容是将要发送的数据。

③ length是发送数据长度,实参是APP_PAYLOAD_LENGTH,单位是字节数。

3.接收

通过调用basicRfPacketIsReady( )函数来检查是否收到一个新的数据包,若有新数据,则调用basicRfReceive( )函数,把数据接收到。在该工程中,light_switch.c文件中的appLight( )函数是用来接收数据的,appLight( )函数代码如下,请注意删除了液晶显示代码。

(1)上述代码的第11行,调用basicRfPacketIsReady( )函数来检查是否收到一个新数据包,若有新数据,则返回True。新数据包信息存放在basicRfRxInfo_t型结构体变量rxi中。

(2)第13行,调用basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL)函数,把收到的数据复制到buffer中,即pRxData,注意与发送数据buffer的pTxData的区别。

从上述代码可知:接收到的新数据被复制到pRxData中。

说明:Rssi一般是用来说明无线信号强度的。英文是Received signal strength indication,它与模块的发送功率以及天线的增益有关。

(3)第15行,判断接收的内容是否与发送的数据一致。若正确,则改变LED1灯的亮、灭状态。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈