ider 发表于 2023-12-23 01:13:06

8G如何避免硬件IIC等死在Wait函数中?| 为什么要死等,没有应答就跳过啊

如果IIC器件失效会导致卡死在Wait函数中,有没有办法解决?不想用软件IIC


void Wait()
{
      while (!(I2CMSST & 0x40));
      I2CMSST &= ~0x40;
}

LAOXU 发表于 2023-12-23 05:29:06

那就用硬件 IIC 吧

myliuyu 发表于 2023-12-23 07:07:27

价格计数器,超时返回错误

stcmcu_xy 发表于 2023-12-23 09:40:46

用if语句判断应答错误用goto跳转强行退出(工业干扰必须这么做,无干扰可以用while简单完成,理论和教学用,实战中这样不行的)

_奶咖君_ 发表于 2023-12-23 09:51:59

stcmcu_xy 发表于 2023-12-23 09:40
用if语句判断应答错误用goto跳转强行退出(工业干扰必须这么做,无干扰可以用while简单完成,理论和教学 ...

goto啊,,,反正建议别加太多,太依赖这东西

Mr.Yan 发表于 2023-12-23 11:25:16

不是还有一个看门狗么的东西么,长时间就复位单片机

Mr.Yan 发表于 2023-12-23 11:26:32

Mr.Yan 发表于 2023-12-23 11:25
不是还有一个看门狗么的东西么,长时间就复位单片机

要么就设置一个忙标志位,参考官方串口通讯里边的思路

ider 发表于 2023-12-23 11:44:21

LAOXU 发表于 2023-12-23 05:29
那就用硬件 IIC 吧

这就是硬件IIC,官方例程的写法

ider 发表于 2023-12-23 11:45:03

Mr.Yan 发表于 2023-12-23 11:26
要么就设置一个忙标志位,参考官方串口通讯里边的思路

这就是官方例程里的,死等

Mr.Yan 发表于 2023-12-23 13:11:44

ider 发表于 2023-12-23 11:45
这就是官方例程里的,死等

是串口 通讯 里的 思路
页: [1] 2
查看完整版本: 8G如何避免硬件IIC等死在Wait函数中?| 为什么要死等,没有应答就跳过啊