解决STM32 I2C接口死锁在BUSY状态的另一种原因和方法

解决STM32 I2C接口死锁在BUSY状态的另一种原因和方法
图片1:STM32CubeMX生成的HAL库IIC具体出错代码【1】

参考了【1】中和其他博主的方法,在初始化IIC之前提前拉高引脚/提前Enable时钟都不能解决我的问题,【1】中博主提到了要在报错的代码段【图片1】中执行DeInit,也只是让函数返回在0(Ready)和2(Busy)中切换,甚至UART RX中断都进不去,最后请教了大佬,发现是由于循环执行太快,数据堵塞导致的问题,在函数下加一个对应ROTS的Delay(1)即可,我用的是RTX CMSIS-RTOS2,所以是osDelay(1),FreeRTOS时vsTaskDelay(1),完美解决问题。

【1】 解决STM32 I2C接口死锁在BUSY状态的方法讨论
https://blog.csdn.net/dldw8816/article/details/51579781?depth_1-utm_source=distr

相关文章:

  • 2022-12-23
  • 2021-12-10
  • 2021-12-12
  • 2021-05-17
  • 2021-06-18
  • 2022-12-23
猜你喜欢
  • 2021-11-23
  • 2021-06-29
  • 2022-12-23
  • 2022-01-05
  • 2021-04-11
  • 2021-11-26
相关资源
相似解决方案