因为根据IIC协议,接入IIC一个设备即可做主设备也可做从设备,实现对IIC线的控制,即要达到线与的功能,所以要用开漏输出。
一个IIC总线可以连接多个器件,如果选用推免输出可能会产生很大的电流,烧毁器件,而开漏输出不接上拉电阻不能输出高电平,加上拉电阻时电流由上拉电阻决定,因此使用开漏输出
硬件IIC只能接到它固定的管脚上,而且好像只有一两组,另外IO固定有时画板不好布线,有一定的局限性; 模拟I2C随便两个IO口就可以用了,另外同样的代码移值到其他类型的MCU上很方便,重新绑下IO口的就可以了。