各位高手请帮忙解决下。
我用CC2541与CC3200连接,CC2541作为I2C Master,CC3200作为I2C Slave通讯,CC2541采用 hal_i2c。程序调通,但是有时会遇到 I2C 阻塞问题,具体现象如下:
1. 阻塞可能会发生在 I2C_WRITE() 或 I2C_READ(),都发生在宏的 while 循环跳不出来;
2. I2C_READ()阻塞时,SDA保持低电平,SCL保持低电平;I2C_WRITE()阻塞时,SDA和SCL都保持低电平;
3. 阻塞时,寄存器 I2CCFG.STA=0, STO=0, SI=0, AA=1, I2CSTAT=F8。
我尝试计数跳出死循环,但是后续无法让 I2C 恢复正常。
请各位大牛帮忙分析解决,谢谢!