找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 558|回复: 8
收起左侧

软件i2c和硬件i2c区别

[复制链接]
ID:1146034 发表于 2025-3-22 15:36 | 显示全部楼层 |阅读模式
一般软件i2c和硬件i2c有什么区别啊?
软件i2c在cube里面配置了就直接使用hal库封装好了的代码吗?
硬件要自己写时序,i2cstart、stop这些吗?
回复

使用道具 举报

ID:74687 发表于 2025-3-23 09:18 | 显示全部楼层
硬件I2C必须选用芯片I2C的PIN脚,在开发的时候有些PIN须用复用一下,然后调用芯片方提供的库函数就可以了。

软件模拟I2C,PIN脚一般选普通的GPIO,然后开发的时候,需要自己写时序。
回复

使用道具 举报

ID:462827 发表于 2025-3-23 10:41 | 显示全部楼层
区别就是软件I2C很容易地变换要使用的GPIO口,灵活性大;硬件的I2C就只能是固定的GPIO口(可以切换另外的组),速率会比软件模拟的高。按需选择吧
回复

使用道具 举报

ID:1109793 发表于 2025-3-23 15:02 | 显示全部楼层
大概是你正好写反了
回复

使用道具 举报

ID:401564 发表于 2025-3-23 15:24 | 显示全部楼层
硬件IIC与软件IIC前面已经有人说了,我就不多说了
但是,个人感觉新手还是要先学会软件IIC,这对于你理解IIC有很大的帮助
对于应答,不应答,超时之类的,只有软件IIC才能真正的理解这其中的原理
项目实际应用就要看你的要求了,硬件自然是通讯效率高了
但软件也有好处,就是好移植,STM32到51,只要宏定义搞好了,直接复制就行
回复

使用道具 举报

ID:879809 发表于 2025-3-23 18:16 | 显示全部楼层
软件IIC的时序是你的软件完成的,硬件IIC的时序是peripheral完成的,你只要写寄存器就行了。
回复

使用道具 举报

ID:446156 发表于 2025-3-24 11:23 | 显示全部楼层
IIC这种低速总线没必要用硬件的,用软件模拟的就行
回复

使用道具 举报

ID:831024 发表于 2025-3-27 13:25 | 显示全部楼层

IIC这种低速总线没必要用硬件的,用软件模拟的就行
回复

使用道具 举报

ID:707558 发表于 2025-3-30 11:51 | 显示全部楼层
软件I2C可以根据需要方便地选择引脚,但要自己写时序相关的一些代码,不过这些代码也比较简单且很容易找到,如STC51就有很多的软件I2C例子;硬件I2C使用固定的引脚,直接调用相关库函数就好了。从移植和外设连接等角度看,很多时候使用软件I2C比较好一些。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表