STM32笔记--IIC通信

江科大STM32入门——IIC通信笔记总结 阅读详情

    今天重新看了IIC的通信协议,笔者之前对IIC的具体通信方式十分含糊,使用过的IIC通信器件有lcd1602和oled,因为直接使用的是库函数,所以对IIC的驱动和配置等都很含糊,而且IIC还分硬件与模拟,这次只分析硬件,模拟IIC后续补充。

IIC具有引脚少,硬件实现简单的,可拓展性强的特点,现在被广泛使用再IC之间的通信,

IIC具有如下特点:

1.IIC有两条总线,一条双向串行总线SDL,一条串行时钟线SCL。

2.IIC可挂载多个外设,通过广播方式通信,可设置独立地址来选择通信对象。

3.有3种传输速率,100kb/s,400kb/s,3.4Mkb/s,stm32最大支持400kb/s,且400速率并不精准。

4.片上滤波器可以滤除毛刺保证信息完整。

5.连接到相同总线IC受到总线最大电容400pf限制。

IIC协议:

IIC代码配置例程(硬件IIC):

static void I2C_GPIO_Config(void)
{
  GPIO_InitTypeDef  GPIO_InitStructure; 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);  
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;	      
  GPIO_Init(GPIOB, &GPIO_InitStructure);
}
static void I2C_Mode_Configu(void)
{
  I2C_InitTypeDef  I2C_InitStructure; 
  I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
  I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;	
  I2C_InitStructure.I2C_OwnAddress1 =I2C1_OWN_ADDRESS7; 
  I2C_InitStructure.I2C_Ack = I2C_Ack_Enable ;
  I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
  I2C_InitStructure.I2C_ClockSpeed = I2C_Speed;
  I2C_Init(I2C1, &I2C_InitStructure);
  I2C_Cmd(I2C1, ENABLE);   
}


上面仅仅为IIC的模式和引脚配置,至于读写协议一般购买外设都会赠送,有兴趣可以去研读,看起来确实比较难,但是使用起来还是十分的方便的,了解其中内部协议更有利我们今后在通信方面做到更高效率等。



【STM32】I2C接口(一主多从) I2C接口(一主多从)标准库使用框架+mpu6050驱动代码 阅读详情

相关推荐

【IoT】STM32 IIC 详解 之 stm32 IIC 从机模式(中断方式收发数据)

1、IIC简介 第二节代码会用到该部分内容,对于IIC来说,从机是不能主动发送数据的,开始条件都是由主机生成。 1.1、主机发送数据流程 1) 主机在检测到总线为“空闲状态”(即 SDA、SCL 线均为高电平)时,发送一个启动信号“S”,开始一次通信的开始 2) 主机接着发送一个命令字节。该字节由 7 位的外围器件地址和 1 位读写控制位 R/W组成(此时 R/W=0) 3...

产品线负责人 4万+

I2C设备主机与从机地址设置

1. I2C主机与从机定义 I2C设备一般使用MCU作为主机,从机通过总线连接到I2C设备上,分别是SCL时钟总线和SDA数据总线,主机发送给从机SCL时钟信号,SDA发送数据,如下图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020060623105526.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG

Mr.Liu 2万+

Modbus CRC和LRC算法研究及代码实现

一、CRC(循环冗余校验) 1 CRC16实现流程 XOR = 异或 N = 字节的信息位 POLY = CRC16 多项式计算 = 1010 0000 0000 0001 (生成多项式 = 1 + x2 + x15 + x16) 在CRC16中,发送的第一个字节位低字节 2 CRC16实例推导 3 CRC16代码实现 unsigned short CRC16(unsigned char *a...

Hi, Boy 2892

stm32之IIC通讯(详细图解附代码)

目录 I2C硬件实现协议: 硬件I2C: 引脚选择:PB6 --SCL ;PB7 --SDA I2C 初始化结构体: I2C配置代码: I2C作为主设备发送数据: I2C发送(写)数据代码: I2C软件模拟协议: I2C软件通信: 1、空闲状态: 2、开始信号: 3、停止信号: 4、应答信号: 5、数据的有效性: 各个信号产生的时间间隔: 起始信号: 停止信号: 应答信号ACK: 等待应答: I2C写字节: I2C硬件实现协议: 由STM32的IIC片上外..

qq_54402650的博客 3万+

MATLAB 2022b 用户专属:保姆级IPOPT求解器安装配置全流程(含OPTI工具箱)

本文为MATLAB 2022b用户提供IPOPT求解器的详细安装与配置指南,涵盖OPTI工具箱的适配安装、环境变量设置及常见问题解决方案。通过实战案例演示非线性优化问题的求解过程,帮助用户高效部署这一强大的优化工具,提升工程计算效率。

weixin_29092031的博客 406

健康保险费用预测:可解释机器学习在精算建模中的实战落地

健康保险费用预测是医疗AI与保险科技交叉领域的核心任务,本质是基于临床变量与社会因素对个体医疗支出进行风险量化。其技术原理需兼顾统计建模能力与监管可解释性,XGBoost+SHAP组合因支持特征归因、边际效应分析和临床可干预推演,成为保险精算场景的主流选择。该技术显著提升保费定价精度、降低偿付风险,并支撑DRG费用预警、团险核保辅助及再保险尾部风险评估等关键应用。本文聚焦真实产线中的时间序列验证、临床分层特征工程与监管红线指标(如Bias@90th、Calibration Slope),深入解析如何让模型不

weixin_33702545的博客 306

STM32F4 使用结构体配置功能

1.IIC配置 void IIC_Mode_Config(void) {      I2C_InitTypeDef  I2C_InitStructure;       I2C_InitStructure.I2C_Mode        = I2C_Mode_I2C;     //IIC模式        I2C_InitStructure.I2C_DutyCycle   = I2C_DutyCy...

qq_22329595的博客 864

Docker一键部署Synopsys EDA全家桶(VCS/Verdi 2018版)保姆级教程

本文提供了一份详尽的Docker容器化部署Synopsys EDA工具链(VCS/Verdi 2018版)的保姆级教程。通过环境隔离与标准化,解决传统安装的依赖冲突问题,并重点攻克了容器内GUI图形界面显示的核心难题。教程涵盖从Docker基础安装、镜像获取、容器启动配置,到使用X11转发或VNC实现Verdi完美显示的完整实践,旨在帮助芯片设计工程师快速构建稳定、可移植的一键化EDA工作环境。

weixin_29281941的博客 198

stm32学习笔记-常用的通信协议IIC

文章目录一、IIC基础知识1.1 IIC简介1.2 IIC总线系统结构1.3 IIC通信协议二、STM32的IIC 1 什么是IIC? IIC传输有什么优点? 为什么? 2 叙述IIC传输协议和IIC传输的全过程。 3 stm32IIC结构框图 4 如何编程实现IIC? 一、IIC基础知识 1.1 IIC简介 IIC(Inter-Integrated Circuit)集成电路总线,其实是IICBu...

某风吾起的博客 5723

【WRF数据准备】土地利用数据-MODIS MCD12Q1数据下载及制备

【WRF数据准备】MODIS静态地理数据下载及制备

WW、forever的博客 3413

HandwrittenMathFormulaRecognition:基于YOLOv8的手写数学公式识别系统

输入:包含手写数学公式的图像(拍摄的板书、作业纸等)输出:对应的数字文本形式的数学公式(如LaTeX格式或文本表达式)标准的手写数学表达式数据集,包含在线轨迹及图片,广泛用于公式识别研究。包含近10万对公式图片及对应的LaTeX标注,适合训练公式识别模型。MathBrush公开手写数学公式图像数据集,含多种书写风格。手写数字与符号数据集(MNIST及其扩展)用于基础数学符号的训练。

YOLO 283

STM32 F103C8T6学习笔记6:IIC通信-驱动MPU6050 6轴运动处理组件

STM32 F103C8T6学习笔记6:IIC通信-驱动MPU6050 6轴运动处理组件 去发现同类优质开源项目:https://gitcode.com/ 资源介绍 本资源文件为STM32 F103C8T6学习笔记系列的第六部分,主要内容是关于IIC通信协议的使用,以及如何通过IIC接口驱动MPU6050 6轴运动处理组件。 文件内容 STM32 F103C8T6学习笔记6:IIC通信-驱动MP...

gitblog_09783的博客 414

Android16 rk3576添加触摸点数上限到40个点

本文介绍了在Android 16系统上实现40点触摸支持的修改方案。相比Android 15,Android 16对API添加有更严格的要求,需要在MotionEvent.java中添加@FlaggedApi批注。主要修改包括:1)在input_framework.aconfig中定义flag;2)在MotionEvent.java中添加40个AXIS_GENERIC轴常量并添加批注;3)将32位指针ID处理改为64位适配;4)更新相关API文档。修改涉及多个核心文件,包括PointerController

tzj1058756809的博客 382

基于STM32的SPI通信和IIC通信协议学习笔记

本文主要介绍的是关于STM32外设的通信协议的概念和区别。

weixin_69414084的博客 2272

【华为OD技术面-手撕算法代码真题】- 最长公共前缀

🌟 强烈推荐:华为OD技术面试手撕算法代码真题 🌟大家好!今天我给大家推荐一份备受赞誉的华为OD技术面试手撕算法代码真题。所有题目均为华为od实际面试过程中出现的算法代码真题。

算法大师! 4885

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IIC通信协议(STM32学习笔记 一)

对STM32中IIC总线通信协议的学习笔记记录,通过协议简介、物理层及协议层从零基础开始了解IIC总线协议、传输过程及运用IIC总线传输数据。

qq_30012471的博客 2134

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【STM32笔记】STM32的IIC通信基础(一)

IIC(Inter-Integrated Circuit) 又称为 I2C 或者是 I2C ,是嵌入式系统中的一种常见的数据通信接口。

Macy~的博客 1933

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

STM32(学习笔记3):IIC通信总结

STM32:IIC通信总结 说明 此篇博客为学习笔记,用来总结学到的知识。 IIC介绍:(来自百度百科) IIC总线是飞利浦公司开发的一种双线、半双工的同步串行总线。 IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。 IIC总线是各种总线中使用信号线最少,并具有自动寻址、多主机时钟同步和仲裁等功能的总线。因此,使用I2C总线设计计算机系统十分方便灵活,体积也小,因而在各类实际

qq_46020744的博客 824

学习笔记之IIC通信,基于STM32单片机(CUBEMX)

其实在上学期就用了IIC通信写OLED屏幕,一直没有写,今天有时间写出来进行记录。 (PS:图片内容来自于野火教程) 一.物理层 它的物理层有如下特点: (1) 它是一个支持设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中,可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。 (2) 一个 I2C 总线只使用两条总线线路,一条双向串行数据线 (SDA) ,一条串行时钟线 (SCL)。数据线即用来表示数据,时钟线用于数据收发同步。 (3) 每个连接到总线的设备都有一个独立的地

qq_52207268的博客 3105

stm32学习笔记---IIC通信以及用IIC实现EEPROM的读写

   IIC通信 #include "i2c_driver.h" #include "systick_driver.h" #define GPIO_PORT_I2C GPIOB /* GPIO端口 */ #define RCC_I2C_PORT RCC_APB2Periph_GPIOB /* GPIO端口时钟 */ #define I2C_SCL_PIN GPIO_Pin_6...

moonright 6304

STM32CubMX自学笔记(十)---IIC通信实验

引脚少,硬件实现简单,可扩展性强,不需要外部收发设备,广泛用在多个集成电路通信。信号线SDA和时钟线SCL 1、支持多设备的总线,多个设备共用的信号线。 2、一条IIC只是用两条总线线路,一条双向串行数据线(SDA),一条串行时钟(SCL),数据线用来表示数据,时钟线用来数据收发同步。 3、每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备间的访问。 4、总线通过上拉电阻接到电源。当IIC设备空闲的时候输出高阻态,当所有设备都空闲,都输出高阻态时,由上拉电阻拉成高电平。 5、多个主机同

梅山 6791

【学习笔记】--- STM32再学习.串行通信_IIC

一、IIC简介 1、IIC基本信息 通信标准 IIC 通信方式 同步通信 引脚说明 SCL:同步时钟;SDA数据输入/输出端 通信方向 半双工 IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。经常IIC和SPI接口被认为指定是一种硬件设备,但其实这样的说法是不尽准确的,严格的说他们都是人们所定义的软硬结合体,分为物理层(四线结构)和协议层(主机,从机,时钟极性,时钟相位)。 常见物理接

Wandou____的博客 843

【STM32笔记】STM32的IIC通信基础(三)---IIC读取AHT20温湿度数据(中断模式、DMA模式)

IIC读取AHT20温湿度数据(中断模式、DMA模式)

Macy~的博客 1754

【STM32笔记】STM32的IIC通信基础(二)---IIC读取AHT20温湿度数据(轮询模式)

I2C的常用术语: 主机:初始化发送、产生时钟和终止发送的器件,通常是微控制器。 从机:被主机寻址的器件。 发送器:本次传输中发送数据到I2C总线的器件,既可以作为主机又可以作为从机,由通信过程具体而定。 接收器:本次传输中从I2C总线上接收数据的器件,既可以作为主机又可以作为从机,由通信过程具体而定。 连接在I2C总线上的器件即是主机(或从机),又是发送器(或接收器),这取决于器件所要完成的具体功能。

Macy~的博客 1838

stm32标准库学习:iic通信(基于stm32c8t6)(个人学习笔记,不全部介绍)

在对信号线和时钟线操作之后要加延时是因为软件模拟 IIC 的延时是 “时序适配 + 硬件补偿 + 设备兼容” 的必要操作,核心是 “让主机和从机的节奏匹配”。,没有独立的发送 / 接收通道,同一时刻 SDA 线只能承载一个方向的数据流 —— 相当于两个人对话,同一时刻只能一个人说、另一个人听,不能同时说,这是。iic实现对某款芯片通信步骤:通过配置寄存器地址的值来对mpu6050的硬件电路进行初始化设置,读寄存器来获取数据。当 R/W=0 时,第二个字节包含十位地址的剩余八位(第 7 位至第 0 位)。

2301_81137240的博客 959

STM32F10x的IIC通信笔记(学习于江科大自化协)

于江科大自化协学习IIC部分的笔记,附有详细代码

qq_74917031的博客 707
上一篇: STM32笔记--液晶显示
下一篇: STM32笔记--SPI通信
VCA821
博客等级 码龄9年 395粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值