你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

I2C错误中断是否会造成I2C busy flag被设定?

[复制链接]
matttsai 提问时间:2018-5-1 00:12 /
请问一下, 以下error会产生interrupt, 进而把I2C ISR register的BUSY bit 一直设为1吗?
Arbitration lost (ARLO),
Overrun/underrun error (OVR),
Packet Error Checking Error (PECERR),
Timeout Error (TIMEOUT),
Alert (ALERT)

Thanks

收藏 评论6 发布时间:2018-5-1 00:12

举报

6个回答
toofree 回答时间:2018-5-1 01:02:21
本帖最后由 toofree 于 2018-5-1 01:04 编辑

傲游截图20180501005508.jpg

BUSY只是在检测SDA和SCL,并不是那些错误中断引出的BUSY。
换句说话,不管有没有那些错误中断,只要SDA和SCL数据线是正常的,保持为全1,那么BUSY就是0。
从手册上看的话,只要能在总线上能够检测到一个有效的停止位,那么BUSY就会清零。而那些错误标志,可不会自动能清除的,需要软件清除。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

matttsai 回答时间:2018-5-2 12:46:18
toofree 发表于 2018-5-1 01:02
BUSY只是在检测SDA和SCL,并不是那些错误中断引出的BUSY。
换句说话,不管有没有那些错误中断,只要SDA和 ...

我发现I2C busy bit被设为1,
但是我在示波器看到的SDA, SCL都是被拉High的
并不是Low
这种情况, 为什么busy bit会被设为1?_
toofree 回答时间:2018-5-2 12:50:20
matttsai 发表于 2018-5-2 12:46
我发现I2C busy bit被设为1,
但是我在示波器看到的SDA, SCL都是被拉High的
并不是Low

因为没检测到有效的停止位,标志不能被清除
matttsai 回答时间:2018-5-2 12:54:23
toofree 发表于 2018-5-2 12:50
因为没检测到有效的停止位,标志不能被清除

有效的停止位
==>是指Slave设备都没有回应吗?或是什么情况?
Thanks
toofree 回答时间:2018-5-2 12:55:51
matttsai 发表于 2018-5-2 12:54
有效的停止位
==>是指Slave设备都没有回应吗?或是什么情况?
Thanks

I2C的STOP,自行百度
myst 回答时间:2019-4-10 09:38:03
楼主解决了吗,我也遇到同样的问题,谢谢分享

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版