当前文档版本为 v0.3.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

rf_rx_irq例程

1 功能概述

本例程演示了RF接收中断配置和使用过程。程序会先初始化RF外设工作模式,然后设置发送和接收地址,并开启RF接收中断。当RF模块接收的一帧数据时,会触发RF接收中断处理函数,在中断处理函数中将接收到的数据从缓存中读出并将数据显示在终端上。

注:本例程需要rf_tx_irq例程配合进行功能演示

2 环境准备

  • Board: PAN028b1_evb两块(另一块烧录发送程序)

  • Micro USB线两2根,一根用于程序下载,一根用于查看串口打印Log

  • 将 J19 单刀双掷开关拔至TX侧,将P3_1与uart的TX引脚相连

3 编译和烧录

例程位置:pan028_dk\01_SDK\example_basic\rf\rf_rx_irq

打开目录下keil下的rf_rx_irq.uvprojx工程,编译整个代码工程。

4 演示说明

rf_tx_irq程序运行后,RF每收到一帧数据后,都会产生一个接收中断,如下图:

image-20230331151154543

5 开发说明

RF接收中断相关的配置代码如下,更具体的请查看代码工程。

    RF_Init();
    RF_CarrierOffset(0x00);
    RF_SetCrc(RF_CRC_2BYTE);
    RF_SetRate(RF_DR_1Mbps);
    RF_SetPower(RF_TXPWR_10dBm);
    RF_SetChannel(2);//2402Mhz
    
    RF_SetChipMode(RF_CHIPMODE_XN297);
    RF_SetkWorkMode(RF_WORKMODE_NORMAL);
    
    RF_SetTxSetupTime(112); // Establish time of rf tx state
    
    RF_SetTxAddr(RfAddr, sizeof(RfAddr));
    RF_SetRxAddr(RF_PIPE0, RfAddr, sizeof(RfAddr));
    RF_SetRxPayloadLen(RF_PIPE0, RF_RX_BUF_SIZE);

    RF_EnableDynamicPayload(RF_PIPE0, DISABLE);
    RF_SetAckPayload(FALSE);
    
    RF_EnterRxMode();

    RF_ITConfig(RF_IT_RX, ENABLE);
    RF_EnableIRQ();

6 RAM/Flash资源使用情况

Program Size: data=49.1 xdata=128 const=55 code=5993