最近在做无线语音通信的项目,用到了24L01,24LE1(个人感觉24LE1跟24L01区别不大,核心都是NRF的无线收发,只是24LE1多了一个51内核)
方案是24L01作为中继,24LE1作为对讲机
遇到一个麻烦,中继24L01发送两次,对讲机才接收到一次……
给我的感觉是第一次发送接收都正常,第二次发送没起到作用,第三次却接收到了,第四次又不能接受到,第五次又可以了……就是这样的情况
我分析可能是时序的问题,但是还没发现到底是哪的问题,请教有经验的朋友说说自己是怎么处理的呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
收发各有三个缓存区,及时清除缓冲区。发送前后清除缓冲区。接收有可能没中断触发,用查询寄存器去读取。
我现在遇到别的问题
目前两点之间通信基本算稳定,但是一(仅)发二(仅)收的系统经常发送失败,发送设备在发送过程需要切换地址,两接收设备一直处于接收状态。是什么原因?
目前我分析如下可能:
1、三系统供电都是DCDC 3.3V,无线模块使用开关电源不稳定?
2、发送设备在写入地址的时候不正确写入,导致发送失败?
3、其它原因?
此外还有几点使用疑问:
1、发送的时候CE端一直保持高电平,TX缓冲区只要不为空模块是不是一直处于发送状态,一直发送缓冲区的数据?要是一直发送缓冲区数据,发送不成功产生超时超次数(MAX_RT)中断,我们寄存器写入清除中断标志后模块是否会继续发送数据?还是?
2、模块中的指令“ACTIVATE ”“R_RX_PL_WID”“W_ACK_PAYLOAD”“W_TX_PAYLOAD_NO
ACKa”是什么作用?如何使用?
有经验前辈分析一下注意的使用心得~~~
程序问题的,你CE启动后不能有任何操作,要在那里等待发送完成
一周热门 更多>