天线|RF射频
直播中

张坤

7年用户 180经验值
私信 关注
[问答]

nrf24l01的发送卡死了的解决办法?

板子用的是STM32f407 移植的原子的无线通讯例程 调试发送程序的时候debug显示程序卡在了while(NRF24L01_IRQ!=0);这句里面 程序卡在了中断里面 但是运行例程的debug里面就没有这样的问题 我除了改了引脚 其他都是复制粘贴的 怎么还会出错 求助大神

回帖(8)

钱丘宝

2020-6-12 15:02:00
我注意到个小细节 原子的板子上NRF_IRQ的引脚接了个电阻 我买的最小系统板上就没这个电阻 会不会是这个原因
举报

刘文娟

2020-6-12 15:16:37
还有个问题 既然IRQ是中断引脚 例程里怎么没有中断配置程序 求原子哥解答
举报

何微微

2020-6-12 15:24:48
不会是串电阻的问题。 检查其他地方吧
举报

张静

2020-6-12 15:44:10
串电阻为了修整信号波形,避免出现振荡,自己DIY可靠性要求没有那么苛刻的话不接也可以。
楼主是只测试发送部分,但是却没有接收的板子吗?换而言之,楼主当前做的工作就是,我就让你发送,不管有没有其他器件接收?
如果是这样的话,将发送配置的函数中的“自动应答”功能关闭:

实际上只要是使这个EN_AA寄存器的bit0=0就可以失能通道0的自动应答了:

如果不这么做,根据数据手册中所写的,发送端在发送出去接收端的地址之后,会等待来自接收端的应答信号;如果超时,就会按照某个寄存器(记不清楚了)中设定的重试次数继续继续重试;如果所有重试次数都用光了,那么某个寄存器(也记不清了)就会 置位表示没有接收端设备的应答信号。由于发送一直都是不成功,所以IRQ也就不会有电平变化。

不过如果不是这样的话,有对端接收,那么问题原因就比较多,例如通道不正确,频率不正确,接收端设置与发送端设置不一样(例如上面的自动应答),接收端地址和发送端给出的地址不一致等等都会导致发送失败。
此外我也不太明白为什么楼主使用调试器反而没有这种问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分