硬件IIC和软件IIC区别
原文地址:https://blog.csdn.net/Derricker406/article/details/77171223
所谓硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的;软件I2C一般是用GPIO管脚,用软件控制管脚状态以模拟I2C通信波形。
硬件I2C的效率要远高于软件的,而软件I2C由于不受管脚限制,接口比较灵活。
模拟I2C 是通过GPIO,软件模拟寄存器的工作方式,而硬件(固件)I2C是直接调用内部寄存器进行配置。如果要从具体硬件上来看,可以去看下芯片手册。因为固件I2C的端口是固定的,所以会有所区别。
至于如何区分它们
- 可以看底层配置,比如IO口配置,如果配置了IO口的功能(IIC功能)那就是固件IIC,否则就是模拟
- 可以看IIC写函数,看里面有木有调用现成的函数或者给某个寄存器赋值,如果有,则肯定是固件IIC功能,没有的话肯定是数据一个bit一个bit模拟发生送的,肯定用到了循环,则为模拟。
- 根据代码量判断,模拟的代码量肯定比固件的要大。
1. 硬件IIC用法比较复杂,模拟IIC的流程更清楚一些。
2. 硬件IIC速度比模拟快,并且可以用DMA
3. 模拟IIC可以在任何管脚上,而硬件只能在固定管脚上。
软件i2c是程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序。一般较硬件i2c稳定,但是程序较为繁琐,但不难。
硬件i2c程序员只要调用i2c的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出。但是有些单片机的硬件i2c不太稳定,调试问题较多。
硬件IIC和软件IIC区别相关推荐
- STM32 驱动 GY-302 光照传感器 BH1750 模块(软件IIC与硬件IIC驱动)
1.特别说明 要是不想看原理和过程,直接下拉找代码吧,都是测试过的,很稳定,有硬件I2C驱动的,也有软件模拟I2C驱动的,基于STM32F103系列和STM32F4系列实现,基于标准库实现,条理清 ...
- 基于STM32F103C8T6的IIC通信协议及硬件通信和软件OLED温度显示项目
#一.IIC协议简介 #二.IIC总线系统结构 #三.IIC总线物理层特点 #四.软/硬件IIC总线 #五.IIC总线协议层 #六.IIC通信结构 ##1.空闲状态 ##2.开始信号 ##3.停止信号 ...
- STM32F4软件IIC的使用
1.开发环境 2.说明 3.F4和F1软件IIC区别 GPIO初始化区别 us级延时区别 总结 1.开发环境:硬件:STM32F407IGH6开发板 任意可使用IIC通讯协议传感器 软件:Keil C ...
- 【STM32】标准库与HAL库对照学习教程十三--软件IIC控制AT24C02
[STM32]标准库与HAL库对照学习教程十三--软件IIC控制AT24C02 一.前言 二.准备工作 三.AT24C02(EEPROM)介绍 1.AT24C02简介 2.引脚功能 3.设备地址 四. ...
- 【FOC控制】英飞凌TC264无刷驱动方案simplefoc移植(5)-磁编码器移植AS5600 软件IIC
[FOC控制]英飞凌TC264无刷驱动方案simplefoc移植(5)-磁编码器移植 [FOC控制]英飞凌TC264无刷驱动方案simplefoc移植(5)-磁编码器移植 一.编码器选择 二.通讯方式 ...
- STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、单总线获取DHT11模块温湿度并通过IIC显示到屏幕(软件IIC)
参考:基于stm32软件IIC的oled显示温湿度 作者:ZPZ DayUp 发布时间: 2021-07-25 20:52:43 网址:https://blog.csdn.net/m0_5619768 ...
- 硬件防火墙和软件防火墙有什么区别
防火墙分为软件防火墙和硬件防火墙两种. 软件防火墙是安装在PC平台的软件产品,它通过在操作系统底层工作来实现网络管理和防御功能的优化. 但对国内市场上的硬件防火墙产品介绍仔细研读后,记者发现,对于硬件 ...
- 什么是硬件加密与软件加密,有什么区别?
硬件加密与软件加密的定义 1.硬件加密是通过专用加密芯片或独立的处理芯片等实现密码运算.将加密芯片.专有电子钥匙.硬盘一一对应到一起时,加密芯片将把加密芯片信息.专有钥匙信息.硬盘信息进行对应并做加密 ...
- 软件IIC通信以及源码解析(如何使用)
以对读取MPU6050为例,解析如何采用IIC通信源码. IIC的的通信,通常三种用途读写.分为: 1: 2: 3: 注:其中最常用的就是1和3了. 对1进行讲解: 指定地址写,通常用作对状态机模块的 ...
最新文章
- eclipse 的快捷键
- oracle cost cardinality,ORACLE 执行计划中cost cardinality bytes cpu_cost io_cost解释
- ABAP 向上取整和向下取整 CEIL FLOOR
- spark-1.6.0-cdh5.15.1环境搭建:Local模式和StandAlone
- Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,
- collections模块之defaultdict
- bzoj2424 [HAOI2010]订货 费用流
- springmvc spring mybatis结合 - 代码共享
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能...
- Java中static代码块,main函数,构造函数运行顺序
- testmeshpro合批_UGUI合批原理笔记
- android 按钮复用,Android Button 自带阴影效果另一种解决办法
- JSP概述--JSP的起源,本质,运行原理
- HBase常用过滤器
- 如何实现字体沟边与发光特效?
- python爬虫案例-爬取当当网数据
- 计算机产业能否迅速发展,工业计算机得到了迅速的发展和全面的普及
- js判断对象类型的两种方法
- 电脑软件:office文档密码了怎么办,看完你就能自己找回了
- 浏览器是如何运作的?
热门文章
- TOS和DSCP总结
- H5实现一键复制微信并打开微信跳转好友添加页
- sqlplus 中的spool命令
- office2016实用论文排版技巧
- 中标麒麟编译qgis源码+PyQt环境
- 2022年磺化工艺考试练习题及模拟考试
- Taurus_Linux
- Google Earth Engine ——基于ENVISAT的中分辨率成像光谱仪全球土地覆盖300米分辨率数据集
- android的app勾选了通知消息,为何Android中大部分锁屏APP都要手动勾选“通知使用权”(Notification Access)?...
- 阿里云凌晨回应故障:已全部恢复 将尽快赔偿