[CW32L083系列] CW32L083_i2c中读写eeprom的疑问

[复制链接]
934|5
 楼主| lulugl 发表于 2023-6-20 15:31 | 显示全部楼层 |阅读模式
#申请原创#
@21小跑堂 @芯源新闻官 在学习Libraries/CW32L083_StdLib/src/cw32l083_i2c.c中的 I2C_MasterWriteEepromData函数,在官方的示例的poll读写函数里面有
  1. while ((0 == I2C_GetIrq(I2Cx)) && timeout--);
  2.         if (timeout == 0) return 1;
如果没有使能中断,那么会不会卡死在这里呢,是不是官方的写法有问题?





pssyx 发表于 2023-6-21 09:35 | 显示全部楼层
不会卡死的,有timeout的超时处理。
两只袜子 发表于 2024-1-15 14:47 | 显示全部楼层
官方的写法没有问题。即使没有使能中断,这段代码仍然能够正确地检查I2C操作是否完成,并且能够在超时时返回错误码。轮询方式通常用于在没有使能中断的情况下检查硬件状态。
szt1993 发表于 2024-1-17 12:59 | 显示全部楼层
官方已经把相关的保护机制给做好了
小夏天的大西瓜 发表于 2024-1-21 13:12 | 显示全部楼层
有timeout的超时处理
星辰大海不退缩 发表于 2024-1-21 13:25 | 显示全部楼层
一般不会卡死的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

188

主题

843

帖子

12

粉丝
快速回复 在线客服 返回列表 返回顶部