当前位置: 首页 > news >正文

嵌入式开发之STM32学习笔记day16

STM32F103C8T6 I2C通信协议

1 I2C简介

        I2C(Inter-Integrated Circuit)是一种两线制的串行通信协议,广泛应用于微控制器与外围设备之间的数据传输,它支持多主多从的通信模式,允许多个设备连接在同一总线上,通过7位或10位的唯一地址进行识别,数据传输与时钟信号同步,支持标准模式(100 kbit/s)、快速模式(400 kbit/s)和高速模式(3.4 Mbit/s),并且通过起始和停止条件来标识通信的开始和结束,以及通过应答信号(ACK/NACK)来确认数据接收,因其简单、可靠且成本效益高,I2C协议成为许多嵌入式系统和微控制器系统中首选的通信协议。

        I2C(Inter IC Bus)是由Philips公司开发的一种通用数据总线;两根通信线:SCL(Serial Clock)、SDASerial Data同步,半双工带数据应答;支持总线挂载多设备(一主多从、多主多从);所有I2C设备的SCL连在一起,SDA连在一起;设备的SCL和SDA均要配置成开漏输出模式;SCL和SDA各添加一个上拉电阻,阻值一般为4.7KΩ左右。

2 I2C时序基本单元

起始条件:SCL高电平期间,SDA从高电平切换到低电平

终止条件:SCL高电平期间,SDA从低电平切换到高电平

发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位先行),然后释放SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节

接收一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位先行),然后释放SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA

发送应答:主机在接收完一个字节之后,在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答;

接收应答:主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA);

 指定地址写:对于指定设备(Slave Address),在指定地址(Reg Address)下,写入指定数据(Data

        这张图片显示的是I2C(Inter-Integrated Circuit)通信协议的波形图,它是一种用于连接微控制器和外围设备的两线制串行通信协议。图中展示了SCL(串行时钟线)和SDA(串行数据线)上的信号波形。

  1. 起始条件(S):通信开始于一个起始条件,由SDA线在SCL线为高电平时从高电平跳变到低电平。

  2. 发送字节(Send Byte)

    • 第一个发送的字节是0xD0,这通常包含从设备的地址和读/写(R/W)位。图中显示了7位地址后跟一个位R/W位,其中R/W位为0表示写操作。

    • 第二个发送的字节是0x19,这是寄存器地址,用于指定从设备中读取或写入数据的寄存器位置。

    • 第三个发送的字节是0xAA,这是要写入从设备的数据。

  3. 应答信号(RA:0):在每个字节发送后,从设备通过拉低SDA线来发送一个应答信号(ACK),表示已成功接收到该字节。

  4. 停止条件(P):通信结束于一个停止条件,由SDA线在SCL线为高电平时从低电平跳变到高电平。

当前地址读:对于指定设备(Slave Address),在当前地址指针指示的地址下,读取从机数据(Data

指定地址读:对于指定设备(Slave Address),在指定地址(Reg Address)下,读取从机数据(Data

相关文章:

  • 安装DockerDocker-Compose
  • Playwright Python API 测试:从入门到实践
  • LearnOpenGL-笔记-其十三
  • ROS 2源换源后GPG错误解决方法
  • LangChain输出格式化实践:提升测试工程师LLM开发效率的完整指南
  • Python训练营---Day43
  • 云服务器突发宕机或无响应怎么办
  • <6>, 界面优化
  • 【PCB设计】STM32开发板——电源设计
  • 第二章支线五 ·CSS炼金续章:变量与暗黑主题术
  • 云服务器无法远程连接怎么办?
  • 动态规划(10):状态压缩
  • Flex弹性布局
  • 量子计算在大模型微调中的技术突破
  • 什么是线程上下文切换?
  • 推荐一款使用html开发桌面应用的工具——mixone
  • 描述性统计——让数据说话
  • 太极APP:免Root,畅享Xposed模块的神奇魅力
  • 【Spring底层分析】Spring AOP基本使用+万字底层源码阅读分析
  • 【DAY37】早停策略和模型权重的保存
  • net做公司网站/手机百度网盘下载慢怎么解决
  • 网站开发报价明细表/长沙百度开户
  • 建网站团队/百度2018旧版下载
  • 广州海珠做网站/谷歌优化工具
  • 福州定制网站开发制作/互联网营销平台有哪些
  • 高质量营销型网站定做价格/推广计划书范文