jianhong_wu 发表于 2017-1-24 12:06:56

I2C通信(IIC通信),ACK信号需要进行出错判断吗?程序上应该怎么处理?已解答。

橙夏-东莞:
技术讨论开始啦~
请问大家觉得I2C通信ACK信号需要进行出错判断吗?

hippo-深圳:
当然需要。

★坚鸿-深圳:
我最近需要驱动一个IIC的芯片FM3164,它是集成了铁电存储器和时钟芯片的功能,我是这样处理ACK的,请看代码截图如下:


加里一个超时判断,但是不判断对错。我以前做IIC,设置对ACK啥都不做,直接delay延时一笔带过,用在at24c02上也没问题。所以我的观点是:底层驱动只要调通了,就睁一只眼闭一只眼,让它过,问题也不大,我一直都是这么用。但是终端产品出去之前,一定要做好测试的工作,在终端测试上把好关。

橙夏-东莞:
怕挂机的话,加超时处理?


★坚鸿-深圳:
超时退出是必须的。

老赵-西安:
其实超时处理无非是显示一个错误状态或者放弃IIC,如果等待的办法,就会卡在那里,我感觉都行,但如果用延时的话,有可能出现问题却没发现,最后这问题以别的形式表现出来。


★坚鸿-深圳:
综合了一下老赵的观点,超时的时候给一个错误的状态通知给应用层,让应用层重新来一次,如果连续3次都有问题就报错,这种方法是最理想的。



页: [1]
查看完整版本: I2C通信(IIC通信),ACK信号需要进行出错判断吗?程序上应该怎么处理?已解答。