使用你的ISO板,测试无线NRF24L01,你教程提供的方法是主程序查询处理,包括查询发送或者查询接收处理。但是这样子比较消耗MCU资源file:///C:\Users\TAOS\AppData\Roaming\Tencent\Users\404777092\QQ\WinTemp\RichOle\}4ET}L2Z)XAS93XKXTZHX%9.jpg。后来我就改造为主程序顺序执行发送功能,即如下图1,中断接收处理。
NRF_SendData()这个函数就是控制NRF24L01发送数据的。
我现在遇到奇怪现象是
1、如果在主程序上不加延时处理,主程序运行一次循环大约1ms,主程序循环一次,NRF24L01发送一次数据的话,接收端几乎是一上电就进入了接收中断,然后中断死循环(解释:中断死循环,我指的是中断正常进入处理,执行完中断程序后,又马上再次中断,一直如此)
2、接收端一上电就是断死循环,我就怀疑是发送端发送太快,太频繁,于是在主程序上加上100ms延时(测试下使用,正常程序时延时100ms是个灾难),经过这样处理后,接收端不会一上电就中断死循环,但是过一段时间后,也同样会进入中断死循环。而且这个时间间隔与主程序上的延时有一定的关系,那就是主程序延时时间越长,接收端上电正常工作到进入中断死循环状态时间也越长。我延时100ms,接收端上电工作到进入中断死循环状态时间约是3-5秒。
问:为什么会出现这样奇怪的现象,查找问题原因要从哪个方面入手,要怎样解决这样的问题??? |