I2C知识大全系列三 —— I2C驱动之单片机中的I2C

news2025/1/12 12:00:37

两种方式

单片机中的I2C驱动有两种方式。一种方式是用专用硬件I2C控制器实现,这种方式简单易行,品质也容易控制,只是会增加硬件成本方面的压力。另一种方式是用纯软件方式实现,这种方式几乎无硬件成本方面的考虑。

主要对比:

  • (1)硬件I2C用法比较复杂,模拟IIC的流程更清楚一些
  • (2)硬件I2C速度比模拟快,并且可以用DMA

模拟I2C可以在任何管脚上,而硬件只能在固定管脚上。

硬件I2C

对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;一般也较为稳定,但是程序较为繁琐。硬件(固件)I2C是直接调用内部寄存器进行配置;而软件I2C是没有寄存器这个概念的。

 I2C控制器操作代码STM32系列单片机)

 

收发的三种方式:

  • 中断
  • 轮询
  • DMA

中断和轮询可以收发任意组合。

软件I2C

软件I2C一般是选择单片机中的任意两个空闲GPIO口(管脚复用都选择最基本的GPIO),其中一个口线作为时钟线(SCL),另一个口线作为数据线(SDA),与I2C设备的SCLSDA一一对应连接,用软件控制GPIO口即SCLSDA输出高低电平,模拟I2C总线的时序,从而与I2C设备进行通信。

GPIO模拟I2C程序

起始(start)

时钟线(SCL)高电平,数据线(SDA)从高电平跳变到低电平。代码如下:

结束(stop)

时钟线(SCL)在高电平期间,数据线(SDA)由低电平向高电平跳变。

发送

主机发送一个字节到IIC总线。

主机从IIC总线读取一个字节数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网页图片采集-网页图片采集软件免费

一款免费的网页图片采集软件可以采集网页上的各种图片,每个人都可以采集到各种高清图源。支持任意格式的图片采集,只需要导入链接即可批量采集图片。 还有更多的采集方式:输入关键词全网图片采集/任意网站所有图片采集!不仅可以采…

【C++】STL——vector(万字详解)

🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…

记首次参加网络安全比赛(初赛-知识竞赛,决赛-CTF夺旗赛-解题模式)

网络安全相关的方向很多,几乎IT相关的安全内容都可以涵盖在内。笔者本身的知识体系更偏向于编程语言和Web应用,本次参赛可谓极具挑战,但是就是喜欢这种感觉:) 赛程安排 9月16日接到通知 9月26日初赛 10月15日决赛 …

计算机网络习题答案

1、校园网属于(局域网LAN ) 2、在下列传输介质中,(光缆 )传输介质的抗电磁干扰性最好。 3、光纤上采用的多路复用技术为(WDM) 4、计算机网络的交换方式不包括 无线交换 5、网络体系结构模型OSI模型和TCP/IP模型…

区块链实训教程(6)--开发、编译、部署、调用HelloWorld合约

文章目录1. 任务背景2. 任务目标3. 相关知识点4. 任务实操4.1 新建合约文件4.2 编写合约代码4.3 保存、编译、部署合约4.4 调用合约5. 任务总结1. 任务背景 FISCO BCOS运用智能合约进行归纳资产管理、规则定义和价值交换等操作,所以我们需要学习如何使用智能合约。…

aws ec2 配置jenkins和gitlab

环境搭建 下载jenkins的war包,启动jenkisn nohup java -jar jenkins.war --httpPort8091 > jenkins.log 2>&1 &docker安装gitlab 默认情况下,Omnibus GitLab 会自动为初始管理员用户账号 (root) 生成密码,并将其存储到 /etc…

HarmonyOS系统中内核实现温湿度采集方法

大家好,今天主要来聊一聊,如何使用鸿蒙系统中的温湿度传感器方法。 第一:温湿度传感器基本原理 大部分的传感器是在环境温度变化后会产生一个相应的延伸,因此传感器可以以不同的方式对这种反应进行信号转换。常见的大部分是电阻…

gitlab cicd 5分钟快速入门搭建私人代码仓库

gitlab 是企业级私有服务器 本文章采用docker搭建gitlab 如有不懂可微信我号yizheng369 环境准备 购买阿里云服务器,或者其他服务器 注意:本文章是用阿里云的centos 7.6作为服务器 搭建步骤 1.设置环境变量 export GITLAB_HOME/srv/gitlab2.编写dock…

今天面了个阿里拿27k出来的小哥,让我见识到了什么是天花板

2022年堪称大学生就业最难的一年,应届毕业生人数是1076万。失业率超50%! 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最受毕业生欢迎! 计算机IT行业薪资高,平均薪资是文科其他岗位的3…

PLC NAND 虽来但远

前言 图片来源: 存储随笔 2022年8月份在美国FMS峰会上,Solidigm公司(前身为 Intel NAND 部门) 展示了全球第一款基于PLC NAND研发的SSD。这也标志着,PLC时代已正式拉开序幕。出于对 PLC 的好奇,本文分享PLC NAND 知识&#xff0…

C/C++描述 - 矩阵乘积的计算

矩阵运算是现代科学及工程计算的基石之一,而矩阵乘法则是其中最常见一种运算。对于二维矩阵A、B,如果A的列数等于B的行数,则矩阵A、B可乘,其结果矩阵C的行数等于A的行数,列数等于B的列数。 本文引用自作者编写的下述图…

ArcGIS || ENVI:如何将彩色影像拆分为R、G、B以及H、S、I(B/V)影像?

目录 01 加载RGB影像数据 02 分别将三个波段进行保存 03 将RGB三色图像转化为HSI(HSB或者叫HSV)图像 04 转换的HSI图像拆分成H、S、I三个影像 首先,需要明确,手机拍摄的影像即是Red、Green、Blue三波段影像; 另外,由于方法十分…

视觉合集3

这次的合集是找到了几个论文... 一起来说下 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a cat a cat? Prompt-to-Prompt Ima…

【论文阅读】Pre-training Methods in Information Retrieval

文章目录前言Abs1.Intro2.Background2.1.A Hierarchical View of IR2.1.1.The Core Problem View of IR2.1.2.The Framework View of IR2.1.3.The System View of IR2.2.A Brief Overview of PTMs in IR前言 因为文章篇幅较长,因此还在持续阅读中原文(F…

科研初体验之Linux服务器的入门使用,关于分配了Linux账号之后怎么用,以及怎么利用Linux服务器来跑我们的python代码

前情提要 如果有人看了我之前发的乱七八糟的博客的话,应该就能了解到,我之前是计算机专业大三的学生,好不容易get到了保研的名额,前段时间就一直在操练LeetCode,到处报夏令营啊,预推免什么的,最…

应该了解的网络知识

今天上午10:00参加了一个新华三杯,是关于计算机网络的,100道题,发现没有一道是自己会的,好歹也是学过一学期的计算机网络,到头来发现啥也不会,然后现在就又去复习一下网络。 OSI七层模型 *应用层…

VUE | “面包屑”的原理

最近我在写一个“项目”?遇到了以前没有接触到的一个知识点——“面包屑”。 写下来,我所理解的思路,一是为了看能不能帮助到大家,二是自己肯定不是已经完全理解、印在脑子里了,所以方便自己随时复习~ 我们先来看一下…

自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目

相关文章 [ >.<] 自动化测试项目学习笔记(一)&#xff1a;unittest简单运行&#xff08;初始化&#xff0c;清除&#xff0c;设置测试行为&#xff09;[ >.<] 自动化测试项目学习笔记(二)&#xff1a;学习各种setup、tearDown、断言方法[ >.<] 自动化测试项…

启发式算法之蚁群算法

&#x1f63b;今天我们来学习启发式算法中的蚁群算法&#xff0c;据说&#xff0c;蚁群算法是路径规划算法中’最好’的群智能算法。快让我们开始吧&#xff01; 目录1. 蚁群算法基本介绍1.1 算法简介1.2 算法原理2.蚁群算法的基本流程2.1 路径构建2.2 蚂蚁信息素的更新3. scik…

使用POI和EasyExcel实现Excel导入和导出功能

需求场景 开发中经常会设计到excel的处理&#xff0c;需求场景如下所示&#xff1a; 1、将用户信息导出为excel表格&#xff08;导出数据&#xff09; 2、将Excel表中的信息录入到数据库中&#xff08;导入数据&#xff09; 操作Excel目前比较流行的就是 Apache POI 和 阿里…