HA0 I2C NACK电平无法恢复
未解决
YT MCAL
-
背景
软件版本:HA0 MCAL 2_3_0
硬件:YTM32B1HA01 EVB问题描述
I2C master I2C_STANDARD_MODE模式通信,如果主机未收到应答信号,SCL会持续保持低电平状态,直到下次开始通信。
问题原因
在从机返回NACK时,驱动中会调用I2C_Lld_MasterEndTransfer复位TX和RX FIFO,若通信速率较低,那么可能会出现硬件还没完成收尾动作软件便清FIFO结束传输的情况。
解决方案
I2C_Lld_MasterNACKDetEventHdl函数中在调用I2C_Lld_MasterEndTransfer清除FIFO之前预留超时时间,如下图:

[CddI2c_Master_Slave_Demo_YTM32B1HA0.7z](无效文件格式,允许的格式有:.png, .jpg, .bmp, .txt, .webp, .webm, .mp4, .gif, .hex, .bin, .s19, .elf, .zip, .patch, .pdf, .yct, .jpeg) CddI2c_Master_Slave_Demo_YTM32B1HA0 (2).zip
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...