我有一个 Arduino 项目,它在 SPI 上使用 nRF24l01+ 无线电模块(使用此库:http ://tmrh20.github.io/RF24/ )和在软件序列上的 RFID 阅读器。我正在睡觉我的 Arduino,并让他们在收到消息或准备读取 RFID 标签时通过中断将其唤醒。RFID 位于引脚 4 和 5 上,而 nRF 覆盖引脚 9 - 13 以及用于中断的 2 号引脚。
这两个模块都可以分别与睡眠和中断代码一起正常工作,但是当组合成一个草图时,Arduino 会由于 RFID 标签而唤醒,读取它,然后尝试通过无线电发送一些东西,然后就挂了,等待库调用 write() 返回。
我已经深入研究了这两个库,但我大多无法确定软件序列库的正面或反面。它似乎可能在幕后使用与我的 nRF 模块相同的 ISR,但我没有立即明白为什么这应该是一个大问题,我不明白为什么它会导致收音机挂起。
我知道这可能是一个很长的镜头,但有人知道会发生什么吗?也许有人知道这些库?关于变通的任何想法?谢谢。