无论是SPI还是IIC时序等待的解决方法

2019-10-11 17:00发布

无论是SPI还是IIC时序等待的时候大多数都用下面的这一句
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);



用while来等待标志位,但是如果一直等不到 那么这里不就成为了死循环了嘛?


当然还有另外一种方法 就是软件定时的写法


直接写一个延时等待和时序图里相符合的固定时间 然后继续下一步操作 (这种方法更不稳定)


所以特别来问问 有经验的老司机 除了上面这两种方法,是否还有更好的方法可以用来处理各种时序中等待的问题


而且不会造成可能会死循环这种情况,有什么好的解决办法吗? 求教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。