上次做一个项目用的是STM8S208, 其中有用到片内I2C模块, 发现有这样一个问题:
条件: MCU控制I2C的上拉电阻的电源,MCU初始化IO口的时候开启I2C上拉电阻的电源,MCU作主;
问题: 10台机器出现2台机器I2C模块没有发出I2C信号(开始信号,时钟信号).
调试: 1. 以为是MCU有问题, 用OK的机器的MCU换在有问题的机器上还是有问题;
2. 试着I2C模块的上拉电阻的电源不让MCU开启,而是一上电就立即开启,有问题的机器OK了;
3. 以为是软件问题, 初始化后,开启I2C上拉电阻的电源,再关闭I2C模式,然后重新初始化,
还是有问题(问题仍没有解决).
结论: 花了一天的时间,还是没有用软件的方法去解决,最后放弃用片内I2C模块,用IO模拟I2C, 问题得
到解决. |