我用RF发送模式发送一个标志,我在用接收模式 state = RF_Rx(Rx_reply, 3, 0xFF, 0xFF);? 实时回复数据时候发现,回复的数据在发送的接收看到的标志总是滞后两次。? 怎么设置回复数据是实时最新
我看是好像是 RF_Rx 这个函数发送出去就跳出去了,可以判断 发送出去并且发送完成了,再把函数返回的state置0吗?或者有什么好办法
数据发送完成会进入到发送完成标志TX_MODE_TX_FINISH,在发送完成之后再调用tmos任务进行RF的接收。
我判断 TX_MODE_RX_DATA? ?,就是发送的接收完成 再进行标志判别,此时我看接收端的是正常的,? ? ? ?我把接收端的接收到的标志数据用 state = RF_Rx(Rx_reply, 3, 0xFF, 0xFF); 返回发送端,发送端每次更新的标志还是滞后一条数据。
RF_Rx? 这条指令是不是把数据放进了缓冲区,每次收到数据立即回复缓冲区的数据,然后再放一条新的数据到缓冲区?
如果这样的话,怎么才能实时回复最新的?
AUTO模式下,需要RX收包方收到包后立即回复一包数据作为应答。为了以最快的速度响应,应答包的内容为收到包前,RF_RX接口中预先填写好的数组,它一定是比收包时刻的内容滞后的。
如果要做相对实时的交互,可以由主机端连续发送两包数据,第一包用来交互有效数据,接收无效数据回包;第二包发送一包无效数据,接收有效数据的回包。
CH583M的RF_PHY例程:LLE_MODE_AUTO模式下,我把发送和接收数据速率统一改为 LLE_MODE_PHY_2M,发现发送的接收一直进入 TX_MODE_RX_TIMEOUT,而都改成LLE_MODE_PHY_1M 是正常的,为什么速率快了 反而超时?? 这里需要怎么配置才能正常不超时吗?
重新解压一份EVT包修改看看,我只修改了如下图一处配置,然后默认的收发方改一改,其他没改,2M空中速率是正常通信的。
是一包都无法通信,还是可以成功部分通信包?
若环境中存在干扰,可能会导致超时断连,可以检查一下通信成功包的RSSI,明显偏弱的话,测试的无线环境可以换一个晴朗空旷的环境。