之前有看到贴子说数据长度超过FIFO触发点后,会根据数据长度先进入数据可用中断,最后进入数据超时中断,但做项目实测发现超过FIFO触发点的数据无法进入接收超时中断,只有数据长度小于FIFO触发点的数据包才能进入超时中断,请问这是什么原因?
热门产品 :
CH32L103: 32位PDUSB低功耗单片机
之前有看到贴子说数据长度超过FIFO触发点后,会根据数据长度先进入数据可用中断,最后进入数据超时中断,但做项目实测发现超过FIFO触发点的数据无法进入接收超时中断,只有数据长度小于FIFO触发点的数据包才能进入超时中断,请问这是什么原因?
如果你一包数据超过FIFO触发值,就会触发数据可用中断,此时如果你的SPI 处理可能太慢,FIFO中的数据被取走,新的数据还在进来,FIFO 中数据可能还是大于触发值的,读取完数据后还会是可用中断,所以触发超时中断的条件一定是 FIFO 中的数据小于触发值。如果你一定要处理一包完整的数据,建议你将FIFO 的触发等级调高,或者提高SPI处理速度。