打印

STM32勘误表的I2C部分的理解与疑问1

[复制链接]
3473|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhmili|  楼主 | 2010-3-20 19:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhmili 于 2010-3-20 19:27 编辑

2.9 I2C peripheral
2.9.1 Some software events must be managed before the current byte is
being transferred

Description

When the EV7, EV7_1, EV6_1, EV2, EV8, and EV3 events are not managed before the
current byte is being transferred, problems may be encountered such as receiving an extra
byte, reading the same data twice or missing data.

Workarounds
When it is not possible to manage the EV7, EV7_1, EV6_1, EV2, EV8, and EV3 events
before the current byte transfer and before the acknowledge pulse when changing the ACK
control bit, it is recommended to:
1.use the I2C with DMA in general, except when the Master is receiving a single byte
2. use I2C interrupts and boost their priorities to the highest one in the application to make
them uninterruptible

摘自 STM32F101xC/D/E and STM32F103xC/D/E Errata sheet  Doc ID 14732 Rev 7


基本理解:
在当前位被传送前,一些软件事件标志位( EV7, EV7_1, EV6_1, EV2, EV8, and EV3)必须处理(该设置高的要设置高,该设置低的要设置低),如果没能处理就用以下办法处理:
1、除了 主机仅接收一个字节外,都用DMA 方式传输
2、I2C的中断,将其设定到最高优先级,是他们不可中断
疑问1except when the Master is receiving a single byte 是主机仅接收一个字节外的意思么
疑问2make
them uninterruptible 是什么意思
沙发
香水城| | 2010-3-20 20:28 | 只看该作者
ST中文网站上有译文,虽然是稍早的版本,但这部分没有变。

http://images.stmicroelectronics ... DE_Errata_CH_V5.pdf

使用特权

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

本版积分规则

32

主题

51

帖子

1

粉丝