Ives
你好,
IIC上接了 2个器件:
1、8112和气压
2、100ms读气压,1S中断置标志读一次81123、然后运行一段时间后,IIC出错HAL_I2C_ERROR_OVER,
3,deinit后重新初始化IIC,返回忙。SCL仍然为低电平。
4、断开所有外设,Deinit后重新初始化IIC,仍然返回忙。SCL为低电平。
5,reset芯片后可以恢复。
请帮忙确认下进入 HAL_I2C_ERROR_OVER的原因是什么?重新初始化为什么不能恢复?SDK版本1.6.08
Ives
补充下,这里的说的返回忙是调用IIC读写接口返回的。初始化返回的是成功的。
Ping
1. 返回HAL_I2C_ERROR_OVER原因是RX fifo溢出,可能的原因是接收过程中被其它中断打断,软件来不及读取,导致rx fifo溢出了,rx fifo长度为8Byte,建议改成DMA的方式验证;
2. 如果只是SCL被拉死,deinit init可以恢复,但SDA被拉死就只能复位,检查下是那种情况下的IIC挂死;
打开微信,使用“扫一扫”即可关注