RX例程¶
1功能概述¶
本代码示例主要演示PAN3029的接收功能。
2 环境要求¶
Board: PAN3029 开发板
Mini USB线1根,用于给开发板供电和查看串口打印Log
J-Link下载器一个,用于程序下载
将 J1,J4用跳帽连接
4 使用说明¶
根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载程序:
在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验
观察串口打印的内容,理论上初始化成功后,串口会打印相关信息
RX例程需要搭配TX例程使用
串口输出信息如下:
RF Init OK
RX MODE
Rx : SNR: 10.662339 ,RSSI: -12
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
###Rx cnt 1##
Rx : SNR: 11.183337 ,RSSI: -12
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
###Rx cnt 2##
Rx : SNR: 9.770056 ,RSSI: -12
0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09
###Rx cnt 3##
5代码流程图¶
6代码实现¶
ret = rf_init(); //初始化
if(ret != OK)
{
DDL_Printf(" RF Init Fail");
while(1);
}
rf_set_default_para(); //配置参数
rf_enter_continous_rx(); //进入连续接收模式
while (1)
{
rf_irq_process(); //轮询中断标志
if(rf_get_recv_flag() == RADIO_FLAG_RXDONE) //接收成功
{
BSP_LED_Toggle();
rf_set_recv_flag(RADIO_FLAG_IDLE);
DDL_Printf("Rx : SNR: %f ,RSSI: %f \r\n", RxDoneParams.Snr, RxDoneParams.Rssi);
for(i = 0; i < RxDoneParams.Size; i++)
{
DDL_Printf("0x%02x ", RxDoneParams.Payload[i]);
}
DDL_Printf("\r\n");
cnt ++;
DDL_Printf("###Rx cnt %d##\r\n", cnt);
}
if((rf_get_recv_flag() == RADIO_FLAG_RXTIMEOUT) || (rf_get_recv_flag() == RADIO_FLAG_RXERR)) //接收失败
{
rf_set_recv_flag(RADIO_FLAG_IDLE);
DDL_Printf("Rxerr\r\n");
}
}
7注意事项¶
当芯片配置进入连续接收模式后,就可以连续进行数据接收。不论接收成功还是接收失败,芯片都会在接收结束后继续保持接收状态,除非用户主动退出该状态(切换至standby3模式可退出接收状态)。