打印
[CW32L083系列]

CW32L083_i2c中读写eeprom的疑问

[复制链接]
503|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lulugl|  楼主 | 2023-6-20 15:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#申请原创#
@21小跑堂 @芯源新闻官 在学习Libraries/CW32L083_StdLib/src/cw32l083_i2c.c中的 I2C_MasterWriteEepromData函数,在官方的示例的poll读写函数里面有
 while ((0 == I2C_GetIrq(I2Cx)) && timeout--);
        if (timeout == 0) return 1;
如果没有使能中断,那么会不会卡死在这里呢,是不是官方的写法有问题?





使用特权

评论回复
沙发
pssyx| | 2023-6-21 09:35 | 只看该作者
不会卡死的,有timeout的超时处理。

使用特权

评论回复
板凳
两只袜子| | 2024-1-15 14:47 | 只看该作者
官方的写法没有问题。即使没有使能中断,这段代码仍然能够正确地检查I2C操作是否完成,并且能够在超时时返回错误码。轮询方式通常用于在没有使能中断的情况下检查硬件状态。

使用特权

评论回复
地板
szt1993| | 2024-1-17 12:59 | 只看该作者
官方已经把相关的保护机制给做好了

使用特权

评论回复
5
小夏天的大西瓜| | 2024-1-21 13:12 | 只看该作者
有timeout的超时处理

使用特权

评论回复
6
星辰大海不退缩| | 2024-1-21 13:25 | 只看该作者
一般不会卡死的

使用特权

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

本版积分规则

145

主题

707

帖子

9

粉丝