嵌入式常见协议---IIC协议

1.IIC(I²C)协议是什么?

全称 Inter-Integrated Circuit ,字面意思是集成电路之间,是I²C BUS简称,中文应该叫集成电路总线,是一种串行通信总线(同步串行半双工),使用多主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。

2.IIC(I²C)是用来干什么的?

为了让主板或者嵌入式能与其他外设之间通信而开发的通信协议。比如STM32想要使用其他外设进行通信就需要接线-写代码-烧录运行  即STM32与外设通信过程;

3.IIC(I²C)通信过程

接线:搭建通信线路;写代码:指定通信传输协议;烧录运行:正式通信;;

通信可以比喻为两个人说话 :能不能听懂--双方之间约定的信号协议  ;;速度是否适合:双方满足时序要求。即两线——串行数据(SDA)串行时钟(SCL) 线在连接到总线的器件间传递信息。SDA:数据信号线,用于传输数据 SCLK:时钟信号线用于产生时钟频率,控制时序,实现协议过程;   一个IIC总线上,可以挂载多个外接设备。由于是单总线进行数据传输,所以IIC协议是半双工的。

3.1空闲状态

SDA与SCL同是出于高电平。由上拉电阻拉高

3.2起始信号与停止信号

开始信号:当SCLK时钟信号一直处于高电平状态时,SDA线由高电平跳变到低电平这个动作,表示起始信号

结束信号:当SCLK时钟信号一直处于高电平状态时,SDA线由低电平跳变到高电平这个动作,表示结束信号

3.3应答信号ACK

发送器每发送一个字节,就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平则为有效应答位(ACK简称应答位),表示成功接收该字节;若为高电平则为非应答位(NACK)表示未接收成功; 低有高无

在SCL高电平期间 SDL必须稳定;

等待数据线是高 return1; 是低 return 0;

SCL为1时观察SDA是否为0  确定是否产生应答

3.4数据有效性

在SCL电平上升沿到来之前和之后数据必须稳定 如下图所示

3.4.1发送数据

3.4.2读取数据

3.5数据的传送

每一位数据都有一个时钟脉冲相对应,即在SCL时钟的配合下,在SDA上逐位串行传输每一位数据

4.实际中如何完成通信? 

总结:在 I2C 通信中,主设备主动控制通信的开始和结束,以及数据的读取和写入。从设备则在被选择后响应主设备的请求,但不会主动发起通信。信号的发出是由主设备根据通信协议和操作需要决定的。

IIC总线可挂很多设备 多个主设备 多个从设备

IIC协议超详细解释(适合小白入门)_板栗阿叔的博客-CSDN博客

第52讲 I2C通信实验-M3_哔哩哔哩_bilibili

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

配置 Mantis 在 Windows 上的步骤

配置 Mantis Bug Tracker 在 Windows 上的步骤 Mantis Bug Tracker 是一款开源的缺陷跟踪系统,用于管理软件开发中的问题和缺陷。在 Windows 环境下配置 Mantis 可以帮助开发者更方便地进行项目管理。以下是一个详细的教程,包含了 EasyPHP Devserver 和…

app上架一直显示审核中状态要怎么处理?

当你提交一个应用到App Store上时,它会经历一个审核过程。在这个过程中,苹果的审核人员会检查你的应用是否符合苹果的规定和标准。这个过程通常需要几天的时间,但是如果你的应用一直显示“审核中”状态,那么可能会有一些原因。 1…

如何使用Cloudreve将个人电脑打造为私有云盘并实现远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 云存储概念兴起后,现在市面上也已经有了很多公有云盘。但一段时间后…

为什么国密SSL证书越来越受市场青睐

随着信息技术的迅猛发展,网络安全问题备受关注。在这个背景下,越来越多的单位纷纷选择国密SSL证书,以构建更为安全可靠的网络环境。那么,为什么这么多单位选择国密SSL证书呢? 1,国家政策支持 近年来&#…

有哪些不错的golang开源项目?

前言 下面是github上的golang项目,适合练手,可以自己选择一些项目去练习,整理不易,希望能多多点赞收藏一下!废话少说,我们直接进入正题>>> 先推荐几个教程性质的项目(用于新手学习、…

拼多多Temu销量大涨,三个月销量冲上热搜,Temu狂飙既要又要合规性证书

电商巨头拼多多野心之大,大到国内市场装不下。于是乎,跨境业务Temu于2022年下半年在美国上线2023年随着销量的不断狂飙,Temu平台对质量也是提出了卖家证明产品质量过关的合规性证书! Temu在 8月的单日GMV达5000万美金&#xff0c…

锐捷:下一代防火墙修改密码

一、背景 刚接到的任务,锐捷行业的一台下一代防火墙的管理密码和管理地址都忘记了,并且命令登陆也设置了密码,只能通过重置的方式来进行管理,配置了。 本案例是一台RG-WALL 1600-S3200。 二、配置思路 1、准备环境 2、收集设备软…

智能测径仪从这五大方面提升了性能

在测径仪的研发升级中,蓝鹏测控从未停下脚步,研究新的技术,让测径仪更好的为产线服务的功能。目前提供两种类型的在线测径仪,普通测径仪与智能测径仪,智能型主要在这五大方面进行了性能提升。 1、自动化程度 智能测径…

淘宝API接口系列:连接商户与消费者的桥梁

一、引言 淘宝,作为中国最大的电商平台之一,拥有数以亿计的注册用户和海量的商品信息。淘宝API接口作为连接商户与消费者的重要桥梁,为开发者提供了丰富的电商资源,帮助他们创新和优化业务。本文将深入探讨淘宝API接口的相关知识…

手机如何去图片水印?试试这三种方法

手机如何去图片水印?去水印已然成为了自媒体从业者必备技能之一,无论是工作或生活中经常遇到图片/视频上带有水印,非常影响整体观感,网上去水印方法又很多,如果你是小白,这篇文章将提供给你三个实用去水印的…

金润etc推动交通行业的数字化进程

金润etc是金润科技以ETC为切入点,深耕交通物流行业,致力于成为交通生态的数据科技服务平台。为了实现这一目标,金润数科提供了全面的交通生态解决方案,包括智慧路况监测、智能停车和智慧运维等。这些解决方案可以帮助城市交通更加…

使用docker-compose优雅部署rocketMQ

使用docker-compose优雅部署RocketMQ 随着市场的发展,越来越多的复杂场景出现在我们日常的开发工作中。随之也越来越多的好的工具,也同步出现在程序员的学习范围清单内。好的工具提高产品性能的同时,也带来了很多安装上的问题,do…

Python实现WOA智能鲸鱼优化算法优化XGBoost分类模型(XGBClassifier算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

使用Jmeter进行http接口测试

前言: 本文主要针对http接口进行测试,使用Jmeter工具实现。 Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。 一、开发接口…

GPTS-生成一个动漫图像GPT

介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…

BUUCTF刷题之路-web-[GXYCTF2019]Ping Ping Ping1

启动环境后,是一个简简单单的页面: 看样子是能够触发远程执行漏洞的。尝试下ping 127.0.0.1,如果有回显说明我们的想法是对的。 最近才学习的nc反弹shell。想着是否能用nc反弹shell的办法。控制服务器然后输出flag呢?于是我测试下…

Unity3d 灯光阴影开启,法线贴图出现BUG

URP项目打开灯光的阴影后,法线贴图出现BUG 解决方案:按照下图所示调整材质的选项即可

js数组中,相同id的item数据合并

原数据: const list [ {id:1, key: a}, {id:1, key: b}, {id:2, key: c}, {id:2, key: d}, ]期望数据格式 const newList [ {id:1, keyList: [a,b]}, {id:2, keyList: [c,d]}, ]// 相同id的数据合并let newList_(list ).flatten().groupBy(id).map(_.spread((..…

算法刷题-动态规划3(未完待续---------

算法刷题-动态规划3) 01背包问题最后一块石头的重量 01背包问题 一篇文章吃透背包问题 大佬讲解什么是背包问题 问题分析: 面对这么多的物品, 选择一个个地来装入背包,背包的承重量不断地增加,二维数组中,…

Python中的datetime库

1. datetime datetime是Python中用于处理日期和时间的类,它包含在datetime模块中。使用datetime类,我们可以创建表示特定日期和时间的对象,以及进行日期和时间的计算和操作。 from datetime import datetime, timedelta# 获取当前日期和时间…