RSSI应用参考¶
1 功能介绍¶
PAN3029/3060读取RSSI功能是指在芯片接收到数据时,读取当前数据包的信号强度值的功能。在收到RX_IRQ信号之后,直接读取寄存器获取RSSI值。
2 软件设计参考¶
2.2 软件设计验证¶
参照SDK Rx Demo。
2.2.1 SDK示例¶
参考代码:
ret = rf_init(); //初始化
if(ret != OK)
{
printf(" RF Init Fail");
while(1);
}
rf_set_default_para(); //配置参数
rf_enter_continous_rx(); //进入连续接收模式
while (1)
{
rf_irq_process(); //3029中断处理
key_scan();
key_event_process();
process_rf_events(); //事件处理
}
示例代码配置了连续接收模式,并在接收到数据后,将接收到的数据内容及SNR、RSSI值打印出来。
if(irq & REG_IRQ_RX_DONE)
{
RxDoneParams.Snr = rf_get_snr();
RxDoneParams.Rssi = rf_get_rssi();
RxDoneParams.Size = rf_recv_packet(RxDoneParams.Payload);
irq &= ~REG_IRQ_RX_DONE;
rf_clr_irq(REG_IRQ_RX_DONE);
rf_set_recv_flag(RADIO_FLAG_RXDONE);
}
中断处理函数中,当芯片接收到数据,产生REG_IRQ_RX_DONE(RX_IRQ)中断时,通过rf_get_rssi接口函数读取当前数据包的信号强度值。