打印
[STM32F1]

关于stm32f103 I2C复位问题

[复制链接]
1477|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lh18753385|  楼主 | 2020-6-29 20:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RT,当stm32f103 I2C死机后,如何在不重启的情况下,复位I2C外设,我将I2C_CR1的SWRST置位,也没有效果。

使用特权

评论回复
沙发
lh18753385|  楼主 | 2020-6-29 20:27 | 只看该作者
@香水城 您好,麻烦城主帮我看看这个问题,只要可以复位就行,我在程序做检测和复位的机制。

使用特权

评论回复
板凳
zeshoufx| | 2020-6-29 20:30 | 只看该作者
解决了吗?

使用特权

评论回复
地板
lh18753385|  楼主 | 2020-6-29 20:34 | 只看该作者

没有哦,网上有帖子说,SCL强制发送9个脉冲使总线复位。

使用特权

评论回复
5
香水城| | 2020-6-30 08:14 | 只看该作者
6
lh18753385|  楼主 | 2020-6-30 09:09 | 只看该作者
香水城 发表于 2020-6-30 08:14
l2C接口进入busy状态不能退出https://bbs.21ic.com/icview-1018202-1-1.html[/url]

谢谢城主的回复,我找时间评测一下。

使用特权

评论回复
7
JerryWu75| | 2020-6-30 11:00 | 只看该作者
PE=0;
NOP;
NOP;
PE=1;

使用特权

评论回复
8
lh18753385|  楼主 | 2020-6-30 12:10 | 只看该作者

您好,PE是GPIO么,还是寄存器呀

使用特权

评论回复
9
cctv19881023| | 2020-6-30 14:11 | 只看该作者
I2C死机之后,从机已将总线拉死,所以需要时钟线连续发9个脉冲,将从机数据释放出来,从而恢复总线

使用特权

评论回复
10
cctv19881023| | 2020-6-30 14:11 | 只看该作者
I2C死机之后,从机已将总线拉死,所以需要时钟线连续发9个脉冲,将从机数据释放出来,从而恢复总线

使用特权

评论回复
11
JerryWu75| | 2020-7-1 15:50 | 只看该作者
lh18753385 发表于 2020-6-30 12:10
您好,PE是GPIO么,还是寄存器呀

PE是I2C_CR1寄存器的bit0,peripheral enable

使用特权

评论回复
12
lh18753385|  楼主 | 2020-7-1 15:59 | 只看该作者
JerryWu75 发表于 2020-7-1 15:50
PE是I2C_CR1寄存器的bit0,peripheral enable

这样做,I2C还是会卡死哦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

159

帖子

1

粉丝