标题: 软件i2c和硬件i2c区别 [打印本页]

作者: 泮熙璃茉岚    时间: 2025-3-22 15:36
标题: 软件i2c和硬件i2c区别
一般软件i2c和硬件i2c有什么区别啊?
软件i2c在cube里面配置了就直接使用hal库封装好了的代码吗?
硬件要自己写时序,i2cstart、stop这些吗?

作者: zyftank    时间: 2025-3-23 09:18
硬件I2C必须选用芯片I2C的PIN脚,在开发的时候有些PIN须用复用一下,然后调用芯片方提供的库函数就可以了。

软件模拟I2C,PIN脚一般选普通的GPIO,然后开发的时候,需要自己写时序。
作者: hantu    时间: 2025-3-23 10:41
区别就是软件I2C很容易地变换要使用的GPIO口,灵活性大;硬件的I2C就只能是固定的GPIO口(可以切换另外的组),速率会比软件模拟的高。按需选择吧
作者: xiaobendan001    时间: 2025-3-23 15:02
大概是你正好写反了
作者: Y_G_G    时间: 2025-3-23 15:24
硬件IIC与软件IIC前面已经有人说了,我就不多说了
但是,个人感觉新手还是要先学会软件IIC,这对于你理解IIC有很大的帮助
对于应答,不应答,超时之类的,只有软件IIC才能真正的理解这其中的原理
项目实际应用就要看你的要求了,硬件自然是通讯效率高了
但软件也有好处,就是好移植,STM32到51,只要宏定义搞好了,直接复制就行
作者: rundstedt    时间: 2025-3-23 18:16
软件IIC的时序是你的软件完成的,硬件IIC的时序是peripheral完成的,你只要写寄存器就行了。
作者: qinlu123    时间: 2025-3-24 11:23
IIC这种低速总线没必要用硬件的,用软件模拟的就行
作者: 2929299    时间: 2025-3-27 13:25

IIC这种低速总线没必要用硬件的,用软件模拟的就行
作者: az51hei    时间: 2025-3-30 11:51
软件I2C可以根据需要方便地选择引脚,但要自己写时序相关的一些代码,不过这些代码也比较简单且很容易找到,如STC51就有很多的软件I2C例子;硬件I2C使用固定的引脚,直接调用相关库函数就好了。从移植和外设连接等角度看,很多时候使用软件I2C比较好一些。
作者: daaiwujiang    时间: 2025-7-11 08:30
从个人的过往经验,感觉第一步一定要先学软件IIC,把软件IIC学会了再去用硬件IIC,注意,到硬件IIC这里我用的词语是“用”而不是“学”,因为IIC本身一旦把软件模拟的方法学会,硬件的使用就非常简单了,大多数MCU都是配置一下寄存器就好,如果是库函数的方式,也就是有专门的start和stop函数,直接调用即可。  学单片机本身其实就是学习各种外设总线的时序,当时我学单片机的时候,一个老师说时序是灵魂,当时还不太理解,现在明白了,希望对伙伴们有帮助。
作者: TTQ001    时间: 2025-7-14 01:03
硬件I2C使用起来很简单,只需要调用库即可。软件I2C的使用难度要大得多,但软件I2C在应用上提供了更多的灵活性和便利性。
作者: hi等你    时间: 2025-7-14 11:00
我虽然也不懂硬件i2c怎么用,但软件i2c觉得方便,特别更换单片机移植更便捷,随便两个任意io脚就能胜任
有可能我写的程序还没苛刻到要求单片机日理万机累死累活的地步




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1