【WCH蓝牙系列芯片】-基于CH32V208开发板—RF_PHY-2.4G数据传输
-------------------------------------------------------------------------------------------------------------------------------------
2.4GHz无线数据传输技术,是一种短距离无线传输技术,双向传播,抗干扰性强,传输距离远,耗电少的优点。在沁恒的官网EVT例程中,BLE中有RF_PHY非标准无线收发例程,是与蓝牙跑同一个协议栈,RF_PHY 是WCH提供的一个调用底层2.4g收发器的一个接口,这个底层接口是在BLE的收发数据的基础上,基于这个例程对2.4G数据收发进行一个讲解。
一、2.4G单向通信
在初始化中,需要配置:
配通信地址:0x71764129
CRC校验值:0x555555
通信频道:39
通信频率:2480000
模式选择:LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL;
状态变化:RF_2G4StatusCallBack回调函数
数据长度:最大长度251
然后调用RF_Config函数完成配置,通过返回值是否为0进行判断配置是否成功,0为成功,非0失败。
再配置是TX发送模式,还是RX接收模式
无论是在RF_TX还是RF_RX中接收包类型和发送包类型都要一致,这里写了0xFF、0xFF就是表示被所有匹配类型接收和接收所有匹配类型。
在TX发送模式下,开一个TMOS任务事件,触发2.4G无线进行发送功能。每1S往接收端发送一包10个数据TX_DATA。这样TX发送模式就完成了。
在RX接收端中,通过回调函数RF_2G4StatusCallBack中通过进入TX_MODE_RX_DATA中,
先判断RX接收端的CRC校验是否通过,如果通过,就打印发送端和接收端的RSSI值,还有数据长度,和打印的每一个数据。
如果CRC校验未通过的,会根据具体的问题打印对应错误标识。
由于在刚才配置过程中,2.4G模式配置中,模式选择:LLE_MODE_BASIC | LLE_MODE_EX_CHANNEL; 这个basic模式发送后无回包数据,
所以只是TX模式往RX模式的单向传输的一种方式。可以通过串口打印数据来观察现象。
二、2.4G双向通信
如果想要进行TX-RX模式之间进行双向传输,需要将2.4G模式配置中将basic模式进行修改,
LLE_MODE_BASIC 表示基本模式,在发送或接收完成后进入空闲状态。基本模式不会自动切换到接收或发送状态,而是保持在空闲状态。
LLE_MODE_AUTO 表示自动模式,在发送完毕后自动切换到接收状态,在接收完毕后自动切换到发送状态。
在接收端处理完打印输出数据后,立刻执行了,RX模式的发送函数的事件,进行发送TX_DATA2的十个数据。
在回调函数中的TX_MODE_RX_DATA中,添加CRC校验函数,打印接收到的数据和信号强度RSSI的函数。
然后,我们通过串口打印来观察RX模式和TX模式的双方传输数据情况。可以看到TX模式和RX模式都是一来一回的进行传输数据。
在EVT中,也是有专门2.4G自动模式的例程,也可以参考--RF_PHY_Auto:非标准无线收发自动切换例程,进行分析和处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!