一篇短文让你彻底理解什么是I2C通信

I2C通信协议详解 学习笔记 阅读详情
AI摘要

本文深入介绍了I2C协议,包括其通信流程、物理层特性、协议层规则以及E2PROM存储器的使用。I2C使用两条线进行双向通信,支持多设备连接,并通过起始和停止信号、地址和数据传输、应答机制保证数据准确传输。E2PROM如AT24Cxx系列,作为I2C设备,提供了字节和页写、读操作模式。

一、I2C协议

I2C 也叫 IIC(Inter-Integrated Circuit)总线,是一种由PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。它是半双工通信方式。

我们首先阅读以下这个例子,这会方便后面大家进一步理解I2C协议:

如图所示,老师(MCU)将球(数据)传给众多学生中的一个(众多外设设备中的一个)。

首先老师将球踢给某学生,即主机发送数据给从机,步骤如下:

① 老师:开始了(start);
② 老师:A!我要发球给你!(地址/方向);
③ 学生A:到!(回应);
④ 老师把球发出去(传输);
⑤ A收到球之后,应该告诉老师一声(回应);
⑥ 老师:结束(停止);

接着老师让学生把球传给自己,即从机发送数据给主机,步骤如下:

① 老师:开始了(start);
② 老师:B!把球发给我!(地址/方向);
③ 学生B:到!
④ B把球发给老师(传输);
⑤ 老师收到球之后,给B说一声,表示收到球了(回应);
⑥ 老师:结束(停止)。

从上面的例子可知,都是老师(主机)主导传球,按照规范的流程(通信协议),以保证传球的准确性,
收发球的流程总结如下:
① 老师说开始了,表示开始信号(start);
② 老师提醒某个学生要发球,表示发送地址和方向(address/read/write);
③ 该学生回应老师(ack);
④ 老师发球/接球,表示数据的传输;
⑤ 收到球要回应:回应信号(ACK);
⑥ 老师说结束,表示IIC传输结束。

以上就是I2C的传输协议,如果是使用IO口来模拟I2C协议,那么就得需要依次实现上述每个步骤。

二、I2C物理层

这里提个小问题,什么是物理层?

我们可以以分层的思想来理解,例如对于通信协议,我们可以把它分为物理层和协议层。

物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。

协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。

简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。

I2C通信设备物理层如图所示:


I2C通信设备物理层的特点如下:

① I2C 是一个支持设备的总线。总线指多个设备共用的信号线。在一个I2C 通讯总线中,可连接多个I2C 通讯设备,支持多个通讯主机及多个通讯从机。

② 一个I2C 总线只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线(SCL)。数据线即用来表示数据,时钟线用于数据收发同步。

③ 每个连接到总线的设备都有一个独立地址,主机可以利用这个地址进行不同设备之间的访问。

④ 总线通过上拉电阻接到电源。当I2C 设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。

⑤ 多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。

⑥ 具有三种传输模式:标准模式传输速率为100kbit/s ,快速模式为400kbit/s ,高速模式下可达 3.4Mbit/s,但目前大多I2C 设备尚不支持高速模式。

⑦ 连接到相同总线的 IC 数量受到总线的最大电容 400pF 限制 。

三、I2C协议层

I2C 的协议定义了通信的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。

1、写操作

刚开始主机要发出一个start信号,然后发出一个设备地址(用来确定是往哪一个从机写数据),方向(读/写,0表示写,1表示读)。

回应(用来确定这个设备是否存在),然后就可以传输数据,传输数据之后,要有一个回应信号(确定数据是否接受完成),然后再传输下一个数据。

每传输一个数据,接受方都会有一个回应信号,数据发送完之后,主机就会发送一个P停止信号。

  • 白色背景:主→从
  • 灰色背景:从→主

2、读操作

刚开始主机要发出一个start信号,然后发出一个设备地址(用来确定是从哪一个芯片读取数据),方向(读/写,0表示写,1表示读)。

回应(用来确定这个设备是否存在),然后就可以传输数据,传输数据之后,要有一个回应信号(确定数据是否接受完成),然后在传输下一个数据。

每传输一个数据,接受方都会有一个回应信号,数据发送完之后,主机就会发送一个P停止结束信号。

  • 白色背景:主→从
  • 灰色背景:从→主

3、起始信号与停止信号

起始信号S和停止信号P是两种特殊的状态。

当 SCL 线是高电平时 SDA 线从高电平向低电平切换,这个情况表示通信的起始。

当 SCL 是高电平时 SDA 线由低电平向高电平切换,表示通信的停止。

起始和停止信号一般由主机产生。

4、设备地址与数据方向

I2C 总线上的每个设备都有自己的独立地址,主机发起通信时,通过SDA 信号线发送设备地址(SLAVE_ADDRESS)来查找从机。

I2C 协议规定设备地址可以是 7 位或 10 位,实际中 7 位的地址应用比较广泛。

紧跟设备地址的一个数据位用来表示数据传输方向,它是数据方向位(R/W),第 8 位或第 11 位。

数据方向位为“1”时表示主机由从机读数据,该位为“0”时表示主机向从机写数据。


注意:读数据方向时,主机会释放对SDA 信号线的控制,由从机控制SDA 信号线,主机接收信号;写数据方向时,SDA 由主机控制,从机接收信号。

5、数据有效性

I2C 使用 SDA 信号线来传输数据,使用 SCL 信号线进行数据同步。

SDA线上的数据必须在时钟的高电平周期保持稳定,数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变。

换言之,SCL为高电平时表示有效数据,SDA为高电平表示“1”,低电平表示“0”;SCL为低电平时表示无效数据,此时SDA会进行电平切换,为下次数据表示做准备。

6、应答信号

I2C 的数据和地址传输都带响应。

响应包括“应答(ACK)”和“非应答(NACK)”两种信号。

I2C每次传输的8位数据,每次传输后需要从机反馈一个应答位,以确认从机是否正常接收了数据。

当主机发送了8位数据后,会再产生一个时钟,此时主机放开SDA的控制,读取SDA电平,在上拉电阻的影响下,此时SDA默认为高,必须从机拉低,以确认收到数据。

作为数据接收端时,当设备(无论主从机)接收到I2C 传输的一个字节数据或地址后,若希望对方继续发送数据,则需要向对方发送“应答(ACK)”信号,发送方会继续发送下一个数据;若接收端希望结束数据传输,则向对方发送“非应答(NACK)”信号,发送方接收到该信号后会产生一个停止信号,结束信号传输。

7、传输时序图


从图中可以看出:

① SDA和SCL开始都为高电平,然后主机将SDA拉低,表示开始信号.

② 在接下来的8个时间周期里,主机控制SDA的高低,发送从机地址。其中第8位如果为0,表示接下来是写操作,即主机传输数据给从机;如果为1,表示接下来是读操作,即从机传输数据给主机;另外,数据传输是从最高位到最低位,因此传输方式为MSB(Most Significant Bit)。

③ 总线中对应从机地址的设备,发出应答信号。

④ 在接下来的8个时间周期里,如果是写操作,则主机控制SDA的高低;如果是读操作,则从机控制SDA的高低。

⑤ 每次传输完成,接收数据的设备,都发出应答信号。

⑥ 最后,在SCL为高电平时,主机由低拉高SDA,表示停止信号,整个传输结束。

8、一些疑问

问题一:如何在SDA上实现双向传输?

答:主芯片通过一根SDA线既可以把数据发给从设备,也可以从SDA上读取数据,连接SDA线的引脚里面必然有两个引脚(发送引脚/接受引脚)。

问题二:主设备(从设备)发送数据时,从设备(主设备)的发送引脚,不影响数据的发送,怎么做到呢?

答:里面放一个三极管,使用开极(极电集开发出去作为输出)电路,如下图

下面画一个真值表:

从真值表和电路图我们可以知道,当某一个芯片不行影响SDA线时,那就不驱动这个三极管。

  • 想输出高电平时;都不驱动(高电平就由上拉电阻决定)。
  • 想输出低电平,就驱动三极管。

从下面的例子可以看看数据是怎么传的(实现双向传输),比如主设备发送(8bit)给从设备:
① 前8个clk,由主设备决定数据:从设备不驱动三极管;主设备决定数据;
② 第9个clk,由从设备决定数据:主设备不驱动三极管;从设备决定数据;

从上面的例子,就可以知道,怎样在一条线上实现,双向传输的办法。
这就是为什么在SDA,SCL上放上拉电阻的原因。

在第9个时钟之后,如果有某一方处于繁忙状态,它可以一直把SCL拉低当SCL为低电平时候,大家都不应该使用IIC总线,只有当SCL从低电平变为高电平的时候,IIC总线才能被使用。

从前图我们也可以知道ACK信号应该是低电平。主设备不驱动三极管,如果从设备不驱动三极端的化SDA应该是高电平,当从设备接收数据之后,发出回应信号的时候,就会驱动三极管,让SDA变为低电平。所以说:ACK信号是低电平。

对于IIC协议它只能规定怎么传输数据,数据什么含义它完全不能够控制,数据的含义有从设备决定。

四、E2PROM存储器(AT24Cxx)

E2PROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory。

1、与Flash的异同

① E2PROM和Flash的本质上是一样的,Flash包括MCU内部的Flash和外部扩展的Flash。

② 从功能上,Flash通常存放运行代码,运行过程中不会修改,而E2PROM存放用户数据,可能会反复修改。

③ 从结构上,Flash按扇区操作,E2PROM通常按字节操作。

2、结构原理

E2PROM存储器市面上各个品牌众多,但在学习中最经典就是AT24Cxx系列:


从命名上看,AT24Cxx中xx的单位是K Bit,如AT24C08,其存储容量为8K Bit。对于AT24C02,其存储容量为2K Bit,2*1024=2048Bit。

对于AT24C01/02,每页大小为8 Byte,对于AT24C04/08/16,每页大小为16 Byte。如图所示,AT24C02由32页(Page)组成,每一页由8个字节(Byte)组成,每个Byte由8位(Bit)组成,Bit为最小存储单位,存放1个0或1。

3、设备地址

I2C设备都会有一个设备地址,不同容量的AT24Cxx,设备地址定义会有所差异:

例如AT24C02的容量为2K,对应上图中的第一行,高四位固定为“1010”,中间三位由A2、A1、A0引脚的电平决定,比如A2~A0引脚全接地,则值为“000”,最后的最低位为读写位,0代表写命令,1代表读命令。

A2、A1、A0引脚电平需要由原理图决定,假设全接电源地,则如果需要向AT24C02写数据,则发送地址“1010 0000”,如果需要向AT24C02读数据,则发送地址“1010 0001”。

假设开发板有多个AT24C02挂在同一I2C总线上,通过这个规则,只需设计电路时,让A2、A1、A0引脚电平不同,即可区分两个AT24C02。

对于容量再大一点的AT24Cxx系列,比如AT24C04,器件地址由A2、A1引脚决定,数据空间有P0决定。比如对AT24C04的0-2K空间操作,则P0为0,对2K-4K空间操作,则P0为1。

4、写操作

AT24Cxx支持字节写模式和页写模式。

字节写模式是一个地址一个数据的写;页写模式是连续写数据,一个地址多个数据的写,但是页写模式不能自动跨页,如果超出一页长度,超出的数据会覆盖原先写入的数据。

如图所示,为AT24Cxx字节写模式的时序,在MCU发出开始信号(Start)后,发出8 Bit的设备地址信息(图中读写位为低电平,即写数据),待收到AT24Cxx应答信号后,再发出要写的数据地址,再次等待AT24Cxx应答,最后发出8 Bit数据写数据,待AT24Cxx应答后,发出停止信号(Stop),完成一次单字节写数据。

AT24C02容量为2K,因此数据地址范围为0x00-0xFF,即0-255,每个数据地址每次写1Byte,即8bit,也就刚好2568=2048Bit。对于1K容量的产品,数据地址范围为0x00-0x7F,最高位不会用到,因此图中数据地址的最高位为*,意思是对于1K容量的产品,该位无需关心。

上图为AT24Cxx的页写模式时序,与字节写模式的差异在于,不是只发送1Byte数据,而是任意多个。需要注意,该模式不能跨页写,遇到跨页时,需要重新发送完整的时序。

值得一提的是,AT24Cxx每次写完之后,再到下次写之前,需要间隔5ms时间,以确保上次写操作在芯片内部完成,如图所示。

5、读操作

AT24Cxx支持当前地址读模式、随机地址读模式和顺序读模式。

当前地址读模式就是在上一次读/写操作之后的最后位置,继续读出数据,比如上次读/写在地址n,接下来可以直接从n+1处读出数据;随机地址读模式是指定数据地址,然后读出数据;顺序读模式是连续读出多个数据。

在当前地址读模式下,无需发送数据地址,数据地址为上一次读/写操作之后的位置,时序如图所示,注意在结尾,主机接收数据后,无需产生应答信号。

在随机地址读模式下,需要先发送设备地址,待读的数据地址,接着再重新发出开始信号,设备地址,读出数据,时序如图所示。

在顺序读模式下,需要先从当前地址读模式或随机地址读模式启动,随后便可连续读多个数据,时序如图所示。

I2C协议详解(图文并茂+超详细) I²C 叫集成电路总线 它是一种串行通信接口,具有双向两线同步串行总线,通常由两根线组成——SDA(串行数据线)和SCL(串行时钟线)和上拉电阻。 阅读详情

相关推荐

【裸机开发】I2C 通信接口(一)—— I2C 通信时序协议及通信流程

【裸机开发】I2C 通信接口(一)—— I2C 通信时序协议及通信流程

challenglistic的博客 4537

基于Arduino与蓝牙模块的无线LCD显示系统:从串口通信到物联网终端实践

串口通信是嵌入式系统与外部设备进行数据交换的基础方式,它定义了数据帧格式、波特率等关键参数,实现了设备间的可靠数据传输。其原理是通过TX(发送)和RX(接收)引脚,按照时序逐位传输数据。这项技术的核心价值在于其简单、稳定且易于实现,是单片机开发的基石。随着物联网的发展,无线通信技术将串口通信的能力从有线延伸至无线领域,催生了丰富的应用场景,如远程监控、智能家居控制和无线数据采集。本文聚焦于一个典型的工程实践:利用Arduino UNO微控制器,结合HC-05蓝牙模块的串口透传功能,构建一个低成本的无线LCD

weixin_29745609的博客 307

Intel Edison驱动LCD光标:I2C通信与串口控制实战指南

在嵌入式开发与物联网应用中,I2C通信协议因其接口简单、占用引脚少而成为连接微控制器与外围设备(如传感器、显示屏)的主流方式。其原理是通过串行数据线和时钟线实现主从设备间的双向通信,具有多设备寻址能力。这一技术价值在于极大简化了硬件设计,提升了系统集成度。在具体应用场景中,驱动字符型LCD显示屏是常见需求,常用于显示系统状态、传感器数据或构建简单人机界面。本文以Intel Edison开发板为核心,深入讲解如何通过I2C接口连接并驱动LCD屏幕,并实现通过串口指令精准控制光标移动与内容显示,涵盖了从硬件连接

aodanchui1057的博客 464

什么是I2C,IIC怎么用,从实例波形分析I2C读写

什么是I2C,I2C怎么用,从实例波形分析I2C读写

weixin_44167203的博客 2万+

Kimi新模型技术解析:长文本理解与指令遵循的代际跃迁

大语言模型的实用价值正从基础问答转向深度工作流协同。其核心能力演进聚焦于长文本语义保持、跨段落逻辑锚定与任务意图精准解析——这背后是语义关系图谱构建、工程约束逻辑链建模及任务元学习等关键技术突破。在法律合规初筛、硬件故障归因、内容策略生成等真实场景中,模型已展现出从‘规则匹配’到‘风险预判’、从‘字面响应’到‘本质理解’的能力质变。尤其在128K上下文下的关键实体召回率超99.2%,以及对角色扮演、格式约束、逻辑禁令等复杂指令的高遵循率,标志着AI正成为专业决策的可信协作者。本文以Kimi新模型为典型,剖析

weixin_30696427的博客 364

基于树莓派的智能垃圾桶物联网项目实战:从传感器到Web可视化

物联网技术通过传感器、嵌入式系统和网络通信,将物理世界与数字世界连接起来,实现数据的实时采集、传输与处理。其核心原理在于利用微控制器或单板计算机作为边缘节点,整合各类传感器感知环境信息,并通过本地或云端服务进行数据汇聚与分析,最终通过可视化界面呈现。这项技术的价值在于能够实现设备的智能化监控、自动化控制与数据驱动的决策优化,广泛应用于智能家居、环境监测和工业自动化等领域。本文以智能垃圾桶为具体应用场景,详细介绍了如何利用树莓派、超声波传感器、称重模块和电磁锁等硬件,结合Flask框架和MySQL数据库,构建

weixin_30301449的博客 390

I2C协议

I2C物理层 I2C通讯设备之间的常用连接方式 它的物理层有如下特点: (1) 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个I2C通讯总线中,可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机。 (2) 一个I2C总线只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。数据线即用来表示数据,时钟线用于数据收发同步。 (3) 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问。 (4) 总线通过上拉电阻接到电源。当I2C设备

weixin_45969007的博客 1814

从JEDEC SPD规范看内存兼容性:硬件工程师的必修课

在计算机硬件系统中,行业标准是确保不同厂商组件协同工作的基石。JEDEC作为全球固态技术协会,制定了从物理尺寸、电气特性到时序协议的一系列规范,其核心价值在于实现硬件的即插即用与广泛兼容。其中,SPD(串行存在检测)规范定义了内存模组通过EEPROM芯片存储关键参数,使系统能在启动时自动识别并配置内存,极大提升了系统稳定性与兼容性。这一机制不仅应用于消费级内存,也支持服务器LRDIMM和嵌入式窄位宽SO-DIMM等特殊场景。理解SPD数据格式、掌握其读取与解析方法,是硬件工程师进行主板设计、BIOS开发和故

weixin_28728265的博客 278

一文搞懂I2C通信总线

本来不打算写这篇文章,因为网上关于I2C总线通信的资料很多很全。但是最近刚换工作,主要做驱动开发,第一个驱动就是I2C通信,想了想还是结合网上的资料再整理下思路,方便今后的查阅和温习。

不脱发的程序猿 14万+

【CanMV K210】显示交互 LCD1602 I2C 通信与滚动文本显示

本文介绍了使用CanMV K210开发板通过I2C总线驱动LCD1602液晶显示模块的方法。实验首先创建软件I2C对象并扫描设备地址,找到LCD1602的I2C地址后完成初始化。程序实现了固定文本显示和滚动文本效果,展示了I2C通信、LCD初始化、字符写入等完整流程。硬件连接仅需4根线(VCC、GND、SCL、SDA),通过封装LCD驱动类简化了显示控制。实验目标包括理解I2C显示链路、掌握LCD1602基础显示、实现I2C地址扫描和滚动文本显示等核心知识点。

Mr数据杨 558

YOLOv5s模型训练全流程解析:从数据准备到实战检测

本文详细解析了YOLOv5s模型训练的全流程,涵盖从环境搭建、数据准备与格式转换,到模型训练、参数调优及实战检测的完整步骤。文章提供了具体的代码示例和常见问题解决方案,旨在帮助开发者,特别是新手,高效掌握YOLOv5s模型训练的核心技术,并成功应用于实际检测任务中。

weixin_29041767的博客 331

Johnny-Five Multi 温湿度传感器实战:以 TH02 控制器读取温度与相对湿度

本文以 [docs/multi-TH02.md](https://link.gitcode.com/i/9bd801919afe8ebb454914fa8940578d) 为骨架,讲解如何在 Johnny-Five 中通过 `Multi`(多合一传感器)API 驱动霍尼韦尔 TH02 数字温湿度传感器,一次初始化同时获得**温度(摄氏 / 华氏 / 开尔文)**与**相对湿度**两类数据。文章不仅

gitblog_01121的博客 192

中微8S6990外设开发实战:从GPIO配置到低功耗休眠的完整指南

本文提供了中微8S6990增强型8051单片机从GPIO配置到低功耗休眠的完整实战指南。详细讲解了开发环境搭建、GPIO灵活配置、定时器中断、ADC采样优化、PWM电机控制等核心外设的编程要点与避坑技巧,并重点阐述了实现超低功耗休眠的系统性外设管理策略,帮助开发者快速上手并优化产品续航。

weixin_29162439的博客 533

ATtiny10驱动OLED:1KB闪存下的嵌入式图形显示极限实践

在嵌入式系统开发中,微控制器(MCU)与显示设备的交互是常见需求,其核心在于通信协议与资源管理。I2C作为一种广泛应用的串行通信协议,通过软件模拟可在无硬件外设的MCU上实现设备驱动。在资源受限场景下,如仅有1KB闪存的ATtiny10,开发者需采用即时渲染、自定义极简字库等优化策略,以克服内存瓶颈。这种极限编程技术对于超低成本、微型化设备(如医疗传感器标签、微型玩具)具有重要价值。本文以驱动SSD1306 OLED显示屏为例,详细解析了在ATtiny10上通过软件模拟I2C实现图形化显示的全过程,涵盖了从

aaa1231722的博客 502

LIN总线从入门到精通:低成本汽车通信协议原理与实战

在汽车电子和嵌入式系统中,串行通信协议是实现分布式控制的关键技术。其中,LIN(Local Interconnect Network)总线作为一种专为低成本应用设计的单主多从网络协议,其核心原理在于通过简化的“领导-汇报”通信模式,在满足车身控制、传感器数据采集等场景需求的同时,将硬件与布线成本降至最低。LIN总线采用标准化的帧结构,包含间隔场、同步场和受保护标识符场,并依赖调度表来管理通信时序,确保了网络的确定性与可靠性。其技术价值在于为车窗、座椅、灯光等非安全关键系统提供了高性价比的解决方案,是构建分层

weixin_29185167的博客 260

Realtek 10GbE芯片组解析:低成本高速网络方案

10GbE(万兆以太网)技术通过提升网络带宽,显著改善了数据传输效率,成为现代网络架构的核心组件。其工作原理基于高速串行通信协议,通过优化信号处理和编码技术实现低延迟、高吞吐量。在技术价值上,10GbE不仅满足数据中心和企业网络的高需求,还逐步渗透到消费级市场,推动家庭和小型企业的网络升级。应用场景包括NAS存储、视频编辑工作站和云服务接入等。Realtek最新发布的RTL8127、RTL8159和RTL8261C芯片组,以低功耗和低成本优势,进一步降低了10GbE的普及门槛。这些芯片支持PCIe Gen4

weixin_36427956的博客 582

LCD1602液晶模块全解析:从硬件连接到C语言驱动与故障排查

字符型液晶显示模块是嵌入式系统中最基础、最常用的显示方案之一,尤其在单片机与DIY硬件领域应用广泛。这类模块通常采用HD44780兼容控制器,通过标准引脚与GPIO或I2C接口通信,实现16列2行字符的显示。理解其内部结构、时序指令及初始化流程,是掌握嵌入式驱动开发的关键一步。从工业仪表到创客项目,1602模块凭借低成本、可靠性和易用性,长期占据入门教程与快速原型验证的核心位置。本文围绕LCD1602的引脚定义、硬件连接细节、控制器时序、C语言裸机驱动、I2C转接板应用以及常见故障的完整诊断链路展开,帮助开

weixin_29191081的博客 139

电动汽车BMS核心技术:AS8510高精度传感器解析

电池管理系统(BMS)是电动汽车的核心组件,其精度直接影响电池安全与续航表现。通过Σ-Δ ADC和斩波稳定等技术,现代BMS传感器可实现±0.5%的电流测量精度,满足汽车级AEC-Q100和ISO 26262标准。AS8510作为行业标杆芯片,采用双通道16位ADC架构,在-40°C至+150°C范围内保持稳定性能,特别适合新能源汽车的严苛环境。这类高精度传感器技术不仅解决了传统BMS的温漂难题,还为智能电池诊断、无线BMS等创新应用奠定了基础,是推动电动汽车技术进步的关键要素。

weixin_30781775的博客 533

Chandra AI聊天助手性能测试:STM32嵌入式平台部署实践

本文介绍了如何在星图GPU平台自动化部署🤖 Chandra - AI 聊天助手镜像,实现嵌入式设备上的智能对话功能。该镜像经深度优化后可在STM32等资源受限平台上运行,典型应用于智能家居控制、工业设备维护助手和教育玩具等边缘AI场景,为物联网设备提供本地化AI能力。

weixin_35899324的博客 298

三菱JET伺服限位、原点信号通过PLC刷新设置方法

RWw及RWr软元件的初始设定值,可通过 [Pr. PA01.0 控制模式选择] 及 [Pr. PN22.0 默认映射模式选择] 的值进行切换。JET伺服参数用于CC-Link IE现场网络Basic。循环通信的请求报文与响应报文的收发数据被换读为伺服放大器的对象数据 (RWwn、RWrn)。接下来看映射字2D05具体的内容: 也就是2D05操作字的第九位、第十位、第十一位。响应报文的设定值可进行变更。变更初始设定值时,应变更PDO映射。不同的模式,对应不同的刷新映射内容。GXWORKS3程序。

qq_51166033的博客 8048

利用正射影像对斜射图像进行反向投影

因此,RANSAC算法可以通过计算inliners和outliers的数量来评估估计关键点的质量,确保与其他点不一致的点不会在Homography矩阵中被估计。然后,它通过考虑关键点周围区域中图像的梯度大小和方向来计算每个提取的关键点的方向。由于单应性矩阵的计算可能会受到两个图像中异常值的存在的影响,这将导致矩阵的不正确估计并导致沿图像的对准和映射不良。FLANN匹配器的方法基于K近邻搜索的概念,即从图像中找到k个近邻。找到相机在正射影像坐标系中的位置并在正射影像上绘制重叠区域的边界框。

gis收藏家的博客 1510

音诺ai翻译机集成BOE ED028SC7支持电子纸待机显示

音诺AI翻译机融合BOE电子纸技术,实现超低功耗待机显示,通过双稳态特性与局部刷新算法,显著提升续航与户外可读性,支持多场景持续信息展示。

weixin_42504649的博客 675

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

算法大师! 468

树莓派车载AI实战:用Qwen打通感知、理解与控制的完整链路

边缘AI正从概念走向工程实践,如何在资源受限的嵌入式设备上落地大模型成为开发者关注的热点。树莓派作为经典ARM单板,搭配Qwen这类轻量化语言模型,可以在不依赖云端的情况下完成自然语言理解与简单推理。其核心思路是本地量化部署:通过q4_k_m等低比特量化压缩模型体积,降低内存占用,再由树莓派负责决策,STM32负责底层执行,形成感知、理解、控制的三层架构。这种组合的价值在于以较低硬件成本验证大模型在边缘场景的真实边界,适用于车载助手、智能交互设备等原型开发。从硬件选型到系统配置,从模型部署到外设接入,理解整

weixin_34310369的博客 331

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

从参考设计到产品实战:低延迟无线音频系统设计全解析

无线音频传输技术是消费电子领域的关键基础,其核心在于实现高音质、低延迟的稳定信号传输。其原理涉及射频链路设计、音频编解码、同步机制与功耗管理等多个技术模块的协同工作。这项技术的价值在于,它能够将专业音频体验带入家庭娱乐、游戏语音、无线乐器等广泛场景,满足用户对实时、高保真无线音频的迫切需求。本文以一套经典的无线麦克风参考设计为切入点,深入剖析了在2.4GHz频段下,如何通过专有协议、链路预算计算和抗干扰策略来构建稳定可靠的系统。文中详细探讨了从音频信号链量化分析到固件协议栈设计的工程实践,特别是针对低功耗管

weixin_42521186的博客 527

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: FPGA综合实验 05 - | VGA彩条信号显示控制电路设计
下一篇: 半导体物理实验 01 - | 晶体结构构建、仿真与分析
嵌入式逍遥
嵌入式逍遥 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄9年 7万+粉丝 237原创
评论 13
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式逍遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值