CH32V307硬件iic总是卡在 while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));

在CH32V307VCT6上使用硬件iic读寄存器时一直卡在这一步的情况,如下图

image.png

求教此问题如何解决!!!

估计是SDA、SCL都没接上来电阻吧?

印象中SDA必须接上拉电阻,保证主、从机能有效拉低低电平,不拉时能有效高电平。

当配置为主站要发数据前肯定要检测总线电平是空闲高电平啊。


以上都是我乱说了…


您好,可以按照2楼回复先检查一下硬件上是否有问题,注意IIC引脚要接上拉,此外可参考下图在发送start条件之前判断一下是否为忙状态。最后注意一下外设初始化时候的使能,先使能开启GPIO时钟,再开启IIC时钟。后续若有问题,可邮箱(lzs@wch.cn)沟通。

image.png


只有登录才能回复,可以选择微信账号登录