硬件I2C對應芯片上的I2C外設,有相應I2C驅動電路,其所使用的I2C管腳也是專用的,因而效率要遠高於軟件模擬的I2C;一般也較為穩定,但是程序較為繁瑣。
硬件(固件)I2C是直接調用內部寄存器進行配置;而軟件I2C是沒有寄存器這個概念的。
軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協議的時序。
主要對比:
1.硬件IIC用法比較復雜,模擬IIC的流程更清楚一些。
2.硬件IIC速度比模擬快,並且可以用DMA
3.模擬IIC可以在任何管腳上,而硬件只能在固定管腳上。
有些單片機的硬件i2c不太穩定,調試問題較多。例如網上很多人吐槽的STM32…
https://blog.csdn.net/weixin_40774605/article/details/88399276