打印
[APM32F1]

APM32F103系列的I2C外设,在主模式下发生仲裁失败时要如何处理?

[复制链接]
349|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
APM32F103系列的I2C外设,在主模式下发生仲裁失败时要如何处理?

平时使用APM32F103的I2C主模式仅访问一下eeprom或者温度传感器,编写的代码相对简单,操作流程也成熟,使用多年也未出现bug。
最近在考虑使用I2C外设做双机通讯,又仔细阅读了datasheet觉得之前忽略的仲裁中断必须考虑进来,
所以当发生I2C总线仲裁失败后,我的I2C外设还要怎么处理?
是直接返回,择时再发起start位开始发送,还是需要关闭I2C外设deinit一下,再开始重新开始发送呢?

有之前实际应用过的网友们给分享些实战经验,在此谢过!



使用特权

评论回复
沙发
阳光爆裂| | 2025-5-8 09:31 | 只看该作者
不用吧!
APM32F103是使用查询方式来实现的I2C。你按步操作就行了。

使用特权

评论回复
板凳
Gfan| | 2025-5-8 16:57 | 只看该作者
直接返回,择时再发起start位开始发送哈,仲裁错误一般分两种情况:

单主机的情况下出现,一般是硬件问题,需要深入研究具体出现的问题。

多主机情况下出现,需要在软件层控制不同主机的访问时机

使用特权

评论回复
地板
银河漫步| | 2025-5-9 10:47 | 只看该作者
还真没有考虑过这个错误中断的处理。

使用特权

评论回复
5
jobszheng| | 2025-5-9 15:46 | 只看该作者
实现简单,做稳定看来还需要一个较长的时间呀!
这块我也没有考虑过

使用特权

评论回复
6
寂静小夜曲| | 2025-5-12 17:59 | 只看该作者
按流程实现。自己做一个状态机,当遇到仲裁失败,就返回到初始化状态

使用特权

评论回复
7
记忆花园| | 2025-5-12 18:05 | 只看该作者
I2C的内容还这么多

使用特权

评论回复
8
OceanGaze|  楼主 | 2025-6-3 19:14 | 只看该作者
Gfan 发表于 2025-5-8 16:57
直接返回,择时再发起start位开始发送哈,仲裁错误一般分两种情况:

单主机的情况下出现,一般是硬件问题 ...

谢谢版主回复。
我们是在多机情况下,虽然还没有遇到,但要处理这个异常情况。

使用特权

评论回复
9
SpiritSong| | 2025-6-5 14:38 | 只看该作者
I2C总线不是要求一主多从吗?
为什么会出现多主仲裁的情况呢?

使用特权

评论回复
10
幻影书记| | 2025-6-5 16:55 | 只看该作者
嘿嘿 忽略这个情况

使用特权

评论回复
11
jobszheng| | 2025-6-5 22:13 | 只看该作者
在工业控制项目里面,所有的错误、异常必须处理。

使用特权

评论回复
12
latera| | 2025-6-7 22:29 | 只看该作者
硬件完成的吧

使用特权

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

本版积分规则

1

主题

18

帖子

0

粉丝