CH582的I2C会卡住程序,感觉是一直进中断了,求解决方案

1731461070026.png

仿真时,发现i2c的写会一直卡在I2C_ITConfig(I2C_IT_ERR, ENABLE),单步也跳不出去,该如何解决

函数里没有写死循环判断,正常运行不会卡在这里面。

比对测试一下,用USB/串口烧录,不跑仿真能正常运行吗?

如果可以运行,与SWD有关,检查SWD的各项配置。

如果还是无法运行,排查是否有其他外设异常。

image.png


I2C是直接用的例程代码。

现在I2C和一个PD芯片通信,PD芯片的typeC口与USB线碰到的时候有概率程序会死掉,正因为有这个问题才会去仿真,仿真的结果就是卡在下面红线画圈的地方,此时无论单步跳入还是其他什么办法,都无法继续往下走。

如果我把I2C取消掉,typeC口与USB线无论怎么碰,都不会死掉,只有开了I2C才会这样。我尝试使用窗口看门狗试图关闭I2C,窗口看门狗好像也就最多发挥一次作用,不能稳定重启。

QQ20241113-111620.png


已解决


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