有时候我们会用到IO模拟I2C,I2C有两根通信数据线,一根SCL,一根SDA。SCL用于提供同步时钟信号,SDA在时钟的高低电平变化下实现数据传输。SCL有主设备提供那么就是输出,所以SCL一开始要配置位输出而SDA呢,如果只写,那么也可以一开始配置位输出模式,如果要读,那么就要来回的切换。结合我的建议,我建议都在初始化时候配置为输出模式在读字节操作函数的开头将SDA配置成输入模式,当结束后再配置回输出模式。这样就完美了。
IIC通讯分为主模式与从模式,对应模拟IO的策略也要区分上述两种。
总体,不推荐使用模拟IO。