STM32
直播中

王桂英

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

为什么NRF24L01读取数据不能使用中断的方式呢

为什么NRF24L01读取数据不能使用中断的方式呢?这是为什么?

回帖(1)

李韵鹤

2021-12-17 11:49:19



  NRF24L01读取数据不能使用中断的方式,原因如下:
  首先NRF24L01中断触发时,IRQ引脚会一直保持低电平直到状态寄存器中的中断标志被重新清零。
  stm32的外部中断触发方式只有上升沿或者下降沿触发,若配置成外部中断模式,当RX_DR中断触发时IRQ引脚会产生一个下降沿,stm32进入中断函数执行数据读取函数,读取完之后清除状态寄存器标志,IRQ引脚重新变为高电平。但,若在在清除中断标志之后刚好又来了一帧数据,而此时还没有出中断函数,IRQ引脚就会被置为低电平,然后退出中断函数,但IRQ引脚再也产生不了下降沿信号(因为中断标志位不会再被清除),也即再也进不了中断了。
   
  总而言之尽量用查询的方式,不要用中断就好。
举报

更多回帖

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