STM32
登录
直播中
李林
7年用户
1213经验值
私信
关注
[问答]
为什么移植后的NRF24L01模块只能接收一次数据呢
开启该帖子的消息推送
nRF24L01
寄存器
接收端
为什么移植后的NRF24L01模块只能接收一次数据呢?
NRF24L01模块接收端断电重新上电为什么只能接收发送一次数据呢?
回帖
(1)
向芹
2021-12-16 09:31:46
nrf24l01断电重新上电才能接收数据及最大重发次数问题
最近在调试NRF24L01模块,使用的芯片是公司研发的GPCM1F芯片,M0内核,32位单片机,参考正点原子的例程移植代码,调试过程遇到很多问题,其中有2个问题较为深刻,首先是移植完后发现nrf24l01只能接收一次数据,接收的数据是正确的,但是无法接收第二次,而且发送端发送三次后就再也无法发送了,原因是达到了最大重发次数,即使是清除了清除TX FIFO寄存器也不行,但是将接收端断电后,重新上电后,又可以正常接收和发送了,但是也只能接收发送一次。而且即使将接收端重新编译下载或者复位,也不可以接收和发送,调试许久,终于解决问题了。
以下为个人理解,若有说的不对的地方,请各位多多包含。
关于为什么将接收端断电后重新上电就可以接收数据了,我个人的理解是对NRF24L01的寄存器进行写操作或者接收数据时触发某些中断或者标志位时,如果没有及时的清除,就会影响通信,即使你按复位键或者将程序重新编译下载,这些中断为和标志位依旧在,寄存器并不会因为复位或者重新下载而恢复原来初始化的状态,你必须要下清除的命令才行,但是如果重新断电再上电,寄存器回到初始化的状态(即复位时的状态)。
解决方法:本人参考移植的是正点原子无线通信例程,关于接收端基本没什么改动,主要是修改发射端程序,在例程中加入 NRF24L01_TX_Mode()中加入该函数NRF24L01_Write_Reg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
在NRF24L01_TxPacket()中CE为高,延时130us以上后再启动发送。
其他的程序基本上就没有修改了,基本和正点原子的例程一样
通过串口看到,数据发送接收正常,发送时要看看这两个状态标志位,确定数据是不是已经发送出去,一定要保证发射端是正常的。如果有时间在写一下发射接收的调试过程吧,谢谢。
nrf24l01断电重新上电才能接收数据及最大重发次数问题
最近在调试NRF24L01模块,使用的芯片是公司研发的GPCM1F芯片,M0内核,32位单片机,参考正点原子的例程移植代码,调试过程遇到很多问题,其中有2个问题较为深刻,首先是移植完后发现nrf24l01只能接收一次数据,接收的数据是正确的,但是无法接收第二次,而且发送端发送三次后就再也无法发送了,原因是达到了最大重发次数,即使是清除了清除TX FIFO寄存器也不行,但是将接收端断电后,重新上电后,又可以正常接收和发送了,但是也只能接收发送一次。而且即使将接收端重新编译下载或者复位,也不可以接收和发送,调试许久,终于解决问题了。
以下为个人理解,若有说的不对的地方,请各位多多包含。
关于为什么将接收端断电后重新上电就可以接收数据了,我个人的理解是对NRF24L01的寄存器进行写操作或者接收数据时触发某些中断或者标志位时,如果没有及时的清除,就会影响通信,即使你按复位键或者将程序重新编译下载,这些中断为和标志位依旧在,寄存器并不会因为复位或者重新下载而恢复原来初始化的状态,你必须要下清除的命令才行,但是如果重新断电再上电,寄存器回到初始化的状态(即复位时的状态)。
解决方法:本人参考移植的是正点原子无线通信例程,关于接收端基本没什么改动,主要是修改发射端程序,在例程中加入 NRF24L01_TX_Mode()中加入该函数NRF24L01_Write_Reg(NRF_WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//选择通道0的有效数据宽度
在NRF24L01_TxPacket()中CE为高,延时130us以上后再启动发送。
其他的程序基本上就没有修改了,基本和正点原子的例程一样
通过串口看到,数据发送接收正常,发送时要看看这两个状态标志位,确定数据是不是已经发送出去,一定要保证发射端是正常的。如果有时间在写一下发射接收的调试过程吧,谢谢。
举报
更多回帖
rotate(-90deg);
回复
相关问答
nRF24L01
寄存器
接收端
NRF24L01
上电复位
后
才
能接
受
一次数据
2016-01-22
5911
请问使用
nRF24L01
射频
模块
发送、
接收
数据
,发送、
接收
一次数据
消耗多少时间?
2020-05-19
2129
NRF24L01
数据
时有时无
2011-05-24
2829
nrf24l01
模块
不能正常
接收
数据
的原因?
2020-06-12
2171
stm8
nrf24l01
驱动问题如何解决
2020-06-10
1360
nrf24l01
在stm32与电脑上位机通讯不
能接
受
数据
的原因?
2020-07-24
1808
NRF24L01
模块
调试经验分享
2021-12-16
905
NRF
51822与
NRF24L01
通信上电的时候
只能接收
一次数据
是为什么?
2020-07-30
1200
如何解决
nRF24L01
模块
设计和调试遇到的问题?
2021-12-17
1139
如何去实现
NRF24l01
模块
数据
的
接收
与发送
呢
2021-12-16
1320
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分