硬件IIC速度快。
不仅速度快,而且不占用cpu资源。
传输速度其实都是一样的,由IIC时序速度决定的。
硬件和软件IIC的区别是:
硬件的IIC时序由IIC外设自己控制,不需要CPU去干预,CPU只需要把对应的数据写到寄存器即可。
软件IIC,的时序需要CPU自己控制,占用CPU的资源
硬件IIC移植起来比较麻烦,软件IIC移植起来就很简单。
我觉得以I2C的时钟频率来说,最高400KHZ,那硬件和软件模拟的速度没什么差别。
以硬件I2C和软件模拟来分别,应该只是说对CPU是否有占用,软件肯定要占用,需要CPU来模拟,这个可能会影响速度,因为必须有延时。
速度都是一样的快,单片机性能很高,iic 协议最快也就 3.4Mbps,模拟的可以远远超出 3.4Mbps。
所以速度无所谓快慢,都是遵从协议的,模拟的太快了器件不工作,无法通信也没用。
硬件主要是稳定,软件占用 cpu 时间的
STM32硬件I2C极限速度可以达到1MHz,那个模拟的I2C,实测达到100K已经很不稳定了,经常会通信失败,所以,在通信稳定的前提下,肯定是硬件I2C允许更高的速度
现在的I2C器件多数最大速率只能到400K的