CH582/CH592_EVT中RF_Device(从机)例程详解_底层自动跳频管理_支持一对七通讯(两颗IC可互通)

官网例程如果没有更新,可从下方百度网盘链接中获取:

CH583:
链接:https://pan.baidu.com/s/1xQzsn3rAkzJ37iHZOBoPJw?pwd=fgdt

CH592:

链接:https://pan.baidu.com/s/1yKkqvMYfZ7o3YlYYWz7GNg?pwd=q55s

依旧以CH582例程做讲解,CH592与CH582接口部分基本一致,其他地方大同小异。

RF_Device例程路径:


 

 1、main函数初始化配置


 

2、RF参数初始化

 


 

3、上电后启动绑定回连任务

RF_START_BOUND_EVENT任务同时也是配对任务,如果要进行新的配对绑定(解绑之前的Host设备),有两件事需要做:

①修改tmos_memcpy(bound.OwnInfo,MacAddr,6);中copy到bound.OwnInfo的数据,使得自身的RF广播地址发生变化,这样Host就不会认得这个设备,如果不更改,则会导致每次发起配对会立即被原来的Host连接上;

②在发起新的配对之前,一定要使得bound.PeerInfo中的6个字节数据全为0;

要点:在启动RF_START_BOUND_EVENT任务中,执行到RFBound_StartDevice(&bound);前,bound中的OwnInfo不能与上一次的地址一样(否则如果对方Host设备在线,会立即被连上,没有配对新Host的机会),PeerInfo的6个字节数据也一定要全为0,这样才能与新的Host设备完成配对绑定。


 

 4、RF_DMA初始化

 


 

 5、RF绑定回调任务

 

 

 


6、数据发送接口

 

 


7、定时器测试发送数据到对端

 

 

 


8、RF接收函数

 

 

 


9、RF中断回调任务

 

 

 


10、开启HAL_SLEEP宏后休眠保持RF不断连,这种方式可以保证数据的及时响应,但功耗会略高于直接休眠处理,休眠时间越长功耗越低;

 

开启后,在RF_Init时会额外注册一个RF_STATE_RX_RETRY标志,这个标志由RF底层管理,当sleep后被RTC唤醒时,由RF底层判断当前是否允许再次进入休眠,如果通讯未稳定则gRetry标志不会置1,等待稳定后gRetry标志置1再进入sleep休眠;

 

posted @ 2024-04-11 15:58  oTvTo  阅读(714)  评论(0)    收藏  举报