NRF24L01讀取數據不能使用中斷的方式,原因如下:
首先NRF24L01中斷觸發時,IRQ引腳會一直保持低電平直到狀態寄存器中的中斷標志被重新清零。
stm32的外部中斷觸發方式只有上升沿或者下降沿觸發,若配置成外部中斷模式,當RX_DR中斷觸發時IRQ引腳會產生一個下降沿,stm32進入中斷函數執行數據讀取函數,讀取完之后清除狀態寄存器標志,IRQ引腳重新變為高電平。但,若在在清除中斷標志之后剛好又來了一幀數據,而此時還沒有出中斷函數,IRQ引腳就會被置為低電平,然后退出中斷函數,但IRQ引腳再也產生不了下降沿信號(因為中斷標志位不會再被清除),也即再也進不了中斷了。
總而言之盡量用查詢的方式,不要用中斷就好。