【四旋翼飞行器】76小时吃透四轴算法!史上最强软硬结合实战项目,👉戳此立抢👈

提供多主机功能,STM32的I2C通信简析

MCU开发加油站 2018-01-26 09:37 次阅读

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:

• 只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;

• 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;

• 它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

• 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;

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

其典型的接口连线如下:

I2C的协议很简单:

数据的有效性

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

起始和停止条件

SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;

SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。

字节格式

发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须处理一个响应位。

应答响应

数据传输必须带响应,相关的响应时钟脉冲由主机产生。在响应的时钟脉冲期间发送器释放SDA 线(高)。   

在响应的时钟脉冲期间,接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。

也就是说主器件发送完一字节数据后要接收一个应答位(低电平),从器件接收完一个字节后要发送一个低电平。

寻址方式(7位地址方式)

第一个字节的头7 位组成了从机地址,最低位(LSB)是第8 位,它决定了传输的 普通的和带重复开始条件的7位地址格式方向。第一个字节的最低位是

“0”,表示主机会写信息到被选中的从机;

“1”表示主机会向从机读信息。当发送了一个地址后,系统中的每个器件都在起始条件后将头7 位与它自己的地址比较,如果一样,器件会判定它被主机寻址,至于是从机接收器还是从机发送器,都由R/W 位决定。

仲裁

I2C是所主机总线,每个设备都可以成为主机,但任一时刻只能有一个主机。

stm32至少有一个I2C接口,提供多主机功能,可以实现所有I2C总线的时序、协议、仲裁和定时功能,支持标准和快速传输两种模式,同时与SMBus 2.0兼容。

原文标题:STM32的I2C通信

文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

可以在同一个项目中使用STM32 FOC SDK和CubeMX生成的代码吗?

您好! 可以是STM32 FOC SDK& CubeMX生成的代码在同一个项目中使用?我们已经有一些基于CubeMX的库。 ...
发表于 02-21 15:55 18次 阅读
可以在同一个项目中使用STM32 FOC SDK和CubeMX生成的代码吗?

迪文串口液晶屏使用经验分享(仅参考)

迪文的串口屏,性价比高,质量稳定可靠,屏的种类多,消费类,工业类,医疗、军工、特殊行业等苛刻应用类,各个尺寸均有设计。所...
发表于 02-21 15:15 50次 阅读
迪文串口液晶屏使用经验分享(仅参考)

STM32756G-EVAL2读写Nor FLASH的ID是一个固定值

硬件资源:STM32756G-EVAL2 CPU:STM32F756NG 软件:STM32Cube_FW_F7_V1.3.0\Projects\STM32756...
发表于 02-21 08:40 116次 阅读
STM32756G-EVAL2读写Nor FLASH的ID是一个固定值

stm32串口提示不能下载

    我用flymuc来进行串口下载程序,但是总是提示不能下载 请问有人遇到过这个问题吗?该怎么解决?下载程序时Boo...
发表于 02-21 08:33 166次 阅读
stm32串口提示不能下载

请问stm32 f0编译错误怎么解决?

求大神  谢谢
发表于 02-21 08:29 170次 阅读
请问stm32 f0编译错误怎么解决?

在J-link里面找不到STM32F411CE

  我们使用的芯片是STM32F411CE, 计划量产时由其他人员下载程序时想使用J-link,可是在J-link里面找不到ST...
发表于 02-21 08:23 161次 阅读
在J-link里面找不到STM32F411CE

STM32定时器特定频率时误差较大

我想用STM32产生一个可以调频的方波,最小单位是1Hz。本来想着这个是很好处理的,结果发现,当我需要一些特定频率时,就有比...
发表于 02-21 07:56 231次 阅读
STM32定时器特定频率时误差较大

STM32F407 SPI DMA通讯怎么样才能发送和接收都用DMA模式

大家好,我现在想通过DMA来进行SPI通信,用的SPI3,怎么样才能发送和接收都用DMA模式呢,SPI3_RX和SPI3_TX...
发表于 02-21 07:53 186次 阅读
STM32F407 SPI DMA通讯怎么样才能发送和接收都用DMA模式

stm32f030的i2c读写eeprom数据不能进入接收中断

我按照如下配置,但是就是不能进入接收中断,求大神帮忙看看。谢谢了 void I2C_Configuration(void) { GPIO_InitTy...
发表于 02-21 07:14 168次 阅读
stm32f030的i2c读写eeprom数据不能进入接收中断

stm32 EXTI太灵敏一直触发

EXTI设置为下降沿模式--使用板内电平触发正常工作 但是接到一个3.3v长闭的接近开关(共地  用示波器观察 &n...
发表于 02-21 06:32 163次 阅读
stm32 EXTI太灵敏一直触发

基于N+1冗余的更可靠的电力系统设计解决方案

片上系统 (SoC) 设备可实现更高的集成度,而高密度现场可编程门阵列 (FPGA) 可让更多功能集....
的头像 电子设计 发表于 02-18 09:21 358次 阅读
基于N+1冗余的更可靠的电力系统设计解决方案

OV2640和OV7725图像识别跟踪摄像头腐蚀算法找物体代码

利用摄像头的腐蚀算法寻找物体,主芯片采用STM32,编译环境,Keil,关于ov7725以及ov76....
发表于 02-18 08:00 32次 阅读
OV2640和OV7725图像识别跟踪摄像头腐蚀算法找物体代码

使用STM32单片机设计平衡车的代码和电路图资料免费下载

有关于平衡车的代码,采用STM32做主控,Keil为编译环境,陀螺仪MPU为传感器-测倾角以及加速度....
发表于 02-18 08:00 73次 阅读
使用STM32单片机设计平衡车的代码和电路图资料免费下载

使用STM32103单片机的L298N的正反转程序资料免费下载

本文档的主要内容详细介绍的是使用STM32103单片机的L298N的正反转程序资料免费下载。
发表于 02-18 08:00 46次 阅读
使用STM32103单片机的L298N的正反转程序资料免费下载

基于TTCAN和动态晋升机制的CAN总线调度算法

CAN总线最初是由德国BOSCH公司于20世纪80年代初提出的,当时主要应用于汽车电气通信,它将汽车....
发表于 02-17 10:05 49次 阅读
基于TTCAN和动态晋升机制的CAN总线调度算法

现场总线技术标准化进程与现状研究分析

七十年代,微处理器技术的进步以及“集中管理、分散控制”的风险控制策略促成了基于微处理器芯片的集散控制....
发表于 02-17 09:55 90次 阅读
现场总线技术标准化进程与现状研究分析

高性能的RS-232与RS-485双向转换电路

MPM11(A)T模块不仅输入与输出之间隔离,输出RS-232通道与RS-485通道之间也相互隔离,....
的头像 周立功单片机 发表于 02-15 10:32 481次 阅读
高性能的RS-232与RS-485双向转换电路

使用STM32F107单片机控制CH451数码管左移显示键码值

本文档的主要内容详细介绍的是利用STM32F107单片机控制CH451,数码管依次左移显示键码值。
发表于 02-15 08:00 44次 阅读
使用STM32F107单片机控制CH451数码管左移显示键码值

如何解决变频器动力线对DP现场总线干扰的故障

故障现象:前天在P01操作台和触摸屏上操作辊轮架上升下降的动作出现DP总线瞬间闪断一会儿又自动恢复正....
的头像 工控网智造工程师 发表于 02-14 09:11 421次 阅读
如何解决变频器动力线对DP现场总线干扰的故障

浅析判断DP线是否正常的方法

DP线的通断,会影响到现场站之间和现场站与中控的连接,是系统能正常工作的基础。
的头像 工控网智造工程师 发表于 02-14 08:43 431次 阅读
浅析判断DP线是否正常的方法

AD7705高精度AD采集的两通道STM32程序免费下载

本文档的主要内容详细介绍的是AD7705高精度AD采集的两通道STM32程序免费下载。
发表于 02-12 08:00 43次 阅读
AD7705高精度AD采集的两通道STM32程序免费下载

MCU的替换需要考虑什么

对于我们从事软件,或者硬件的朋友,如何将一种MCU轻松替换成同一产品系列的另一种MCU非常重要。
的头像 嵌入式资讯精选 发表于 02-11 15:45 277次 阅读
MCU的替换需要考虑什么

分解功率架构提供高效电源系统解决方案

压力安装在每一代新一代电子系统中,可将公用电力转换为最大效率,密度和速度的负载。为了在过去几十年中实....
的头像 电子设计 发表于 02-11 08:09 106次 阅读
分解功率架构提供高效电源系统解决方案

一个跟地址对齐有关的应用异常案例

也就是说,基于CortexM3内核的芯片,它支持部分指令的非对齐访问,但非对齐访问要慢于对齐访问。即....
的头像 ST MCU 信息交流 发表于 02-04 15:20 140次 阅读
一个跟地址对齐有关的应用异常案例

如何进行多个定时器主从级联同步输出详细配置示例说明

有些应用场合,我们需要使用多个定时器主从级联,然后让各个定时器同时启动并做同频同相的PWM波形输出。....
的头像 ST MCU 信息交流 发表于 02-03 12:27 279次 阅读
如何进行多个定时器主从级联同步输出详细配置示例说明

MPU是什么Cortex-M内核的MPU内存保护单元详细讲解

估计大家经常看见MCU、MPU、MMU等这类缩写词,你们了解MPU吗?
的头像 RTThread物联网操作系统 发表于 02-03 09:30 145次 阅读
MPU是什么Cortex-M内核的MPU内存保护单元详细讲解

PDR_ON出现的相关异常现象分析和解决方法介绍

一些STM32产品能够使能/失能内部电源监视器,通过PDR_ON引脚电平进行控制实现。PDR_ON引....
的头像 STM32单片机 发表于 02-03 08:27 184次 阅读
PDR_ON出现的相关异常现象分析和解决方法介绍

基于STM32介绍DMA的双缓冲模式

目前STM32家族中有些系列支持DMA的双缓冲模式,比如STM32F2/STM32F4/STM32F....
的头像 ST MCU 信息交流 发表于 02-02 16:47 139次 阅读
基于STM32介绍DMA的双缓冲模式

STM32 OTA例程中的WiFi芯片ESP8266

ESP-01模块集成ESP8266EX WiFi芯片,支持802.11b/g/n协议,支持UART/....
的头像 STM32单片机 发表于 02-02 16:45 232次 阅读
STM32 OTA例程中的WiFi芯片ESP8266

STM32的IO端口高8位或低8位单独操作方法

据官方数据手册上面说, 这两个寄存器用于专门对ODR进行原子操作的位操作, 都是在置1的时候对某位有....
的头像 畅学单片机 发表于 02-02 16:42 186次 阅读
STM32的IO端口高8位或低8位单独操作方法

CRC校验和STM32中CRC计算单元相关内容

学电子、计算机相关专业的同学都应该学习过CRC的基础原理。其原理说难不难,可以说就是一个公式。同时,....
的头像 嵌入式资讯精选 发表于 02-02 16:22 132次 阅读
CRC校验和STM32中CRC计算单元相关内容

浅谈STM32和51单片机之间的区别

单片微型计算机简称单片机,简单来说就是集CPU(运算、控制)、RAM(数据存储-内存)、ROM(程序....
的头像 玩转单片机 发表于 01-30 09:36 985次 阅读
浅谈STM32和51单片机之间的区别

浅谈你不知道的STM32知识

STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,....
的头像 玩转单片机 发表于 01-29 16:29 746次 阅读
浅谈你不知道的STM32知识

使用STM32单片机的I2C主从机之间的通信的程序和资料说明

本文档的主要内容详细介绍的是使用STM32单片机的I2C主从机之间的通信的程序和资料说明。
发表于 01-29 15:26 151次 阅读
使用STM32单片机的I2C主从机之间的通信的程序和资料说明

如何解决STM32在擦除内部FLASH时间过长导致IWDG复位的问题

客户反馈在使用STM32F412的时候,擦除Sector 8~11发现时间过长,从而导致意外触发IW....
的头像 STM32单片机 发表于 01-29 11:53 214次 阅读
如何解决STM32在擦除内部FLASH时间过长导致IWDG复位的问题

STM32和STM8微控制器振荡器的设计指南资料说明

许多设计师知道基于皮尔斯门拓扑的振荡器(以下简称皮尔斯振荡器),但并不是所有人都真正了解它们的工作原....
发表于 01-29 08:00 112次 阅读
STM32和STM8微控制器振荡器的设计指南资料说明

浅谈stm32定时器应用中的2个疑问

在使用STM32通用或高级定时器的比较输出时,如果采用中心对齐计数模式做PWM输出,并使用比较事件作....
的头像 ST MCU 信息交流 发表于 01-28 10:14 451次 阅读
浅谈stm32定时器应用中的2个疑问

使用STM32和LIS3DSH进行高精度计步器的研究与设计论文资料免费下载

随着移动通信技术的发展,传统互联网已经在向移动互联网迁移,智能穿戴设备已成为一个关注热点。智能穿戴产....
发表于 01-28 08:00 58次 阅读
使用STM32和LIS3DSH进行高精度计步器的研究与设计论文资料免费下载

STM32C8T6红外循迹小车程序资料免费下载

本文档的主要内容详细介绍的是STM32C8T6红外循迹小车程序,使用keil4编写(寄存器版本),实....
发表于 01-28 08:00 54次 阅读
STM32C8T6红外循迹小车程序资料免费下载

STM32的全部封装库资料免费下载

本文档的主要内容详细介绍的是STM32的全部封装库资料免费下载。
发表于 01-28 08:00 79次 阅读
STM32的全部封装库资料免费下载

STM32中的时钟

时序在数字电路中的作用,就像通信中用到的载波,载波并不起眼,但是很重要。时钟也一样,现象上只是某种频....
的头像 MCU开发加油站 发表于 01-26 15:36 232次 阅读
STM32中的时钟

基于STM32F0的SPI通信的FLASH程序分析

ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列....
发表于 01-26 10:41 136次 阅读
基于STM32F0的SPI通信的FLASH程序分析

YD-STMF1系列核心板测试程序LED资料免费下载

本文档的主要内容详细介绍的是YD-STMF1系列核心板测试程序LED资料免费下载。
发表于 01-25 08:00 48次 阅读
YD-STMF1系列核心板测试程序LED资料免费下载

关于STM32自动识别UART串口波特率的问题

由USART时钟源( fCK)决定通信速率范围(尤其是最大通信速率)。接收器采用不同的用户可配置过采....
的头像 嵌入式资讯精选 发表于 01-24 16:23 291次 阅读
关于STM32自动识别UART串口波特率的问题

单片机初学者的常见问题总结

打开软件后,注意单片机型号的选择,1.我们要选择的是—STC89C52RC/LE52RC;2.串口号....
的头像 单片机精讲吴鉴鹰 发表于 01-24 15:13 566次 阅读
单片机初学者的常见问题总结

FATFS的函数资料简单介绍

刚开始看到FATFS时,一-头雾水,不知道从何下手,网。上也搜了很多资料,要么高深莫测,要么简单地一....
发表于 01-24 15:05 44次 阅读
FATFS的函数资料简单介绍

STM32的各个MCU性能评判

我们经常听见某手机发布会,安兔兔跑分多少多少,其实这个跑分就是体现手机性能的一个指标。我们使用STM....
的头像 嵌入式资讯精选 发表于 01-22 16:37 513次 阅读
STM32的各个MCU性能评判

RT-Thread设备框架使用指南——I2C总线设备简介

应答信号: 每传输完成一个字节的数据,接收方就需要回复一个 ACK(acknowledge)。写数据....
的头像 RTThread物联网操作系统 发表于 01-22 11:50 370次 阅读
RT-Thread设备框架使用指南——I2C总线设备简介

STM32单片机嵌入式系统UCOSII系统移植示例和库函数的资料说明

本文档的主要内容详细介绍的是用于单片机嵌入式系统UCOSII系统移植示例,内含UCOSII库函数。
发表于 01-22 08:00 55次 阅读
STM32单片机嵌入式系统UCOSII系统移植示例和库函数的资料说明

适合STM32的五大嵌入式操作系统

基于STM平台且满足实时控制要求操作系统,有以下5种可供移植选择。分别为μClinux、μC/OS-....
的头像 玩转单片机 发表于 01-21 17:38 888次 阅读
适合STM32的五大嵌入式操作系统

浅析STM32调试过程中的几个相关问题

总的来讲,单片机调试是单片机开发工作必不可少的环节。不管你愿不愿意,调试过程中总会有各种不期而遇的问....
的头像 ST MCU 信息交流 发表于 01-21 13:50 392次 阅读
浅析STM32调试过程中的几个相关问题

使用STM32单片机进行的示波器程序资料免费下载

本文档的主要内容详细介绍的是使用STM32单片机进行的示波器程序资料免费下载。
发表于 01-18 08:00 117次 阅读
使用STM32单片机进行的示波器程序资料免费下载

STM8和STM32之间有些什么差异?STM8和STM32先学谁?

STM8S 和 STM32 器件具有嵌入式自举加载器,通过它可以使用板上串行接口(例如 UART)重....
的头像 嵌入式资讯精选 发表于 01-17 17:34 961次 阅读
STM8和STM32之间有些什么差异?STM8和STM32先学谁?

家居环境辐射量无线检测仪的设计设计资料说明

家居辐射无线检测仪由辐射监测子系统、数据处理子系统、无线传送子系统、监控中心子系统、报警子系统组成,....
发表于 01-17 17:24 58次 阅读
家居环境辐射量无线检测仪的设计设计资料说明

DBLEC-STM32A开发板的用户手册免费下载

DBLEC-STM32A是达博诚为初学者学习、开发意法半导体CortexM3 系列ARM设计的。ST....
发表于 01-17 14:36 70次 阅读
DBLEC-STM32A开发板的用户手册免费下载

GPIO使用说明资料免费下载

一、 在STM32中选用IO模式 1、浮空输入GPIO_IN_FLOATING ——浮空输入,可以....
发表于 01-17 08:00 52次 阅读
GPIO使用说明资料免费下载

NXP正在研究专有的相变存储器 市场前景非常看好

NXP公司,前身为飞利浦公司的芯片部门,正在研究专有的相变存储器(PCM),该公司的首席技术官Ren....
发表于 01-15 14:30 394次 阅读
NXP正在研究专有的相变存储器 市场前景非常看好

自动驾驶芯片火药味十足 NXP即将推出Kalray系统

英伟达在展会上宣布,扩大与梅赛德斯-奔驰的合作关系,为后者构建人工智能架构,能够集成自动驾驶和智能驾....
的头像 高工智能汽车 发表于 01-15 14:05 854次 阅读
自动驾驶芯片火药味十足 NXP即将推出Kalray系统

STM32407ZGT6网络摄像头TCP工程源代码资料免费下载

本文档的主要内容详细介绍的是STM32407ZGT6网络摄像头TCP工程源代码资料免费下载。
发表于 01-15 08:00 66次 阅读
STM32407ZGT6网络摄像头TCP工程源代码资料免费下载

在STM32H7上DMA传输异常案例分析

STM32微控制器提供工业标准Arm® Cortex®-M内核的性能,可运行矢量控制(VC)或磁场 ....
发表于 01-14 08:00 89次 阅读
在STM32H7上DMA传输异常案例分析

SN74LVC646A 具有三态输出的八路总线收发器和寄存器

SN54LVC646A八路总线收发器和寄存器设计用于2.7 V至3.6 VVCC操作,SN74LVC646A八路总线收发器和寄存器设计用于1.65V至3.6VVCC操作。 这些器件由总线收发器电路,D型触发器和控制电路组成用于直接从输入总线或内部寄存器多路传输数据。 A或B总线上的数据在适当时钟(CLKAB或CLKBA)输入的低到高转换时被输入寄存器。图1显示了使用?? LVC646A器件执行的四种基本总线管理功能。 输出使能(OE)和方向控制(DIR)输入控制收发器功能。在收发器模式下,高阻抗端口的数据存储在任一寄存器或两者中。 选择控制(SAB和SBA)输入可以复用存储的和实时(透明模式)数据。当OE \低时,DIR确定哪个总线接收数据。在隔离模式(OE \ high)中,A数据存储在一个寄存器中,B数据可以存储在另一个寄存器中。 当禁用输出功能时,输入功能仍然有效,并且可以用于存储和传输数据。一次只能驱动两条总线A或B中的一条。 输入可以从3.3 V或5 V器件驱动。此功能允许在混合的3.3 V /5 V系统环境中将这些器件用作转换器。 这些器件完全指定用于部分断...
发表于 10-09 17:08 29次 阅读
SN74LVC646A 具有三态输出的八路总线收发器和寄存器

SN74HCT652 具有三态输出的八路总线收发器和寄存器

 HCT652器件由总线收发器电路,D型触发器和控制电路组成,用于直接从数据中复用数据传输总线或从内部存储寄存器。提供输出使能(OEAB和OEBA \)输入以控制收发器功能。提供选择控制(SAB和SBA)输入以选择实时或存储的数据传输。低输入电平选择实时数据;高输入级别选择存储的数据。图1显示了可以使用这些器件执行的四种基本总线管理功能。 A或B数据总线上的数据或两者都可以存储在内部D型触发器中无论选择控制端子还是输出控制端子,在适当的时钟(CLKAB或CLKBA)端子上都会发生从低到高的跳变。当SAB和SBA处于实时传输模式时,通过同时启用OEAB和OEBA \,可以在不使用内部D型触发器的情况下存储数据。在此配置中,每个输出都会增强其输入。当两组总线的所有其他数据源都处于高阻态时,每组总线保持最后状态。 为确保上电或断电期间的高阻态,OEBA \应通过上拉电阻连接到VCC,OEAB应通过下拉电阻连接到GND;电阻的最小值由驱动器的电流吸收/电流源能力决定。 特性 工作电压范围4.5 V至5.5 V 低功耗,80-μA...
发表于 10-09 17:06 26次 阅读
SN74HCT652 具有三态输出的八路总线收发器和寄存器