06_multipipe 多通道地址例程¶
1. 简介¶
本例程在基础通信例程(00_normal)的基础上,实现了多通道地址功能。PAN211x提供6个可用通道,每个通道可绑定不同的通信地址。其中:
通道0和1:支持完全自定义的5字节地址
通道2至5:仅支持修改最低字节,高4字节将自动与通道1保持一致 通过读取相应寄存器,接收端可识别数据来源的通道号。
2. 应用说明¶
2.1. 地址配置说明¶
地址配置注意事项¶
PAN211x的地址寄存器采用LSB->MSB排列顺序。以下示例代码:
uint8_t AddressList[6][5] = {
{0xC0,0xCC,0xCC,0xCC,0xCC},
{0xC1,0xCC,0xCC,0xCC,0xCC},
{0xC2,0xCC,0xCC,0xCC,0xCC},
{0xC3,0xCC,0xCC,0xCC,0xCC},
{0xC4,0xCC,0xCC,0xCC,0xCC},
{0xC5,0xCC,0xCC,0xCC,0xCC},
};
实际对应的通道地址(MSB->LSB)为:
Pipe0: 0xCC,0xCC,0xCC,0xCC,0xC0
Pipe1: 0xCC,0xCC,0xCC,0xCC,0xC1
Pipe2: 0xCC,0xCC,0xCC,0xCC,0xC2
Pipe3: 0xCC,0xCC,0xCC,0xCC,0xC3
Pipe4: 0xCC,0xCC,0xCC,0xCC,0xC4
Pipe5: 0xCC,0xCC,0xCC,0xCC,0xC5
可通过PAN211_SetTxAddr
接口修改发射地址。
2.2. 通道号获取¶
接收端可使用PAN211_GetRxPipeNum
接口获取当前接收数据的通道号:
u8 PipeNum = (u8)PAN211_GetRxPipeNum();
PAN211_ReadFifo(TRX_FIFO, RxBuf, 32);
printf("Rx[%d] on pipe %d\r\n", count++, PipeNum);
3. 例程演示¶
例程位置:
01_SDK/example/06_multipipe
修改参数:
pan211_port.h
中的EASY_RF
宏定义为0时,可通过修改gRfConfig
结构体来配置参数。
pan211_port.h
中的EASY_RF
宏定义为1时,可使用配置导出工具替换对应工程的./src/easy_reg.h
文件来配置参数。
使用步骤:
找到两块PAN211x开发板,分别作为Tx端和Rx端。
用Type-C数据线供电
用跳线帽连接电源跳线P9。
将电源切换开关S1切换至“USB”端。
使用串口模块连接到UART调试引脚P8。
分别打开
tx
和rx
工程,编译后下载到两个PAN211x开发板上。
TX端日志:
CPU @ 64000000Hz
SPI-3LINE
Tx[0] on addr 0
Tx[1] on addr 1
Tx[2] on addr 2
Tx[3] on addr 3
Tx[4] on addr 4
RX端日志:
CPU @ 64000000Hz
SPI-3LINE
Rx[0] on pipe 0
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
Rx[1] on pipe 1
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
Rx[2] on pipe 2
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
Rx[3] on pipe 3
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
Rx[4] on pipe 4
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f