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

rf_tx_rx 例程

1 功能概述

rf_tx_rx 和 rf_rx_tx 例程分别运行在两块开发板上以验证不同设备上的收发切换。

  • 297普通型收发切换

  • 297增强型收发切换

  • 24L01普通型收发切换

  • 24L01增强型收发切换

2 环境准备

  • Board: PAN028b1_evb两块(Tx+Rx)

  • Micro USB线 用于供电和查看串口打印Log

  • 硬件接线:

    • 将 J20 开关拔至TX侧,将P3_1与uart的TX引脚相连

3 编译和烧录

例程位置:

  1. pan028_dk\01_SDK\example_basic\rf\rf_rx_tx

  2. pan028_dk\01_SDK\example_basic\rf\rf_tx_rx

打开目录下keil下的RF.uvprojx工程,编译整个代码工程, 并将两个工程分别烧录到两块开发板上。

4 演示说明

  1. tx_rx端主动发送一个packet

  2. rx_tx端收到该packet

  3. rx_tx端将packet转发给tx_rx端

  4. tx_rx端接收到返回的packet

  5. 重复上述过程

tx_rx端发送一串内容为00的数据。

rx_tx

rx_tx端在收到数据后将数据重新转发给tx_rx端。

rx_tx

5 开发说明

设备的物理层以及用户层配置存放在结构体RF_BasisConfig中,如需修改配置,直接对该结构体修改即可。

xdata RF_Config_t RF_BasisCfg = 
{
    {33, RF_DR_1Mbps, RF_CRC_2BYTE, RF_TXPWR_10dBm},
    {RF_CHIPMODE_XN297, RF_WORKMODE_ENHANCE, RF_APL_ENABLE,  RF_DPL_ENABLE,  sizeof(RfTxBuf), RfTxBuf, sizeof(RfRxBuf), RfRxBuf, sizeof(RfAddr),  RfAddr}
};

使用配置进行初始化

RF_BasisInit(&RF_BasisCfg);

rf_basis.c可以找到读写相关函数的定义。

u8 RF_BasisRead(u8 *pBuf, u8 BufLen, u32 Timeout);
bool RF_BasisWrite(u8 *pBuf, u8 BufLen);

回调函数被注册到全局配置中,在读取Ack之后和发送Ack之前将调用用户回调函数,可用于对Ack内容的修改。

void Rf_readAckPkg_CB(void);
void Rf_writeAckPkg_CB(void);

6 RAM/Flash资源使用情况

Program Size: data=47.2 xdata=114 const=120 code=8551