第五章 stm32 cubemx 软件I2C实验以及EEPROM的使用理论及实验过程

本文详细介绍了STM32中的I2C通信协议,包括I2C概述、物理层、协议层,以及起始、停止信号、数据有效性、地址和数据方向的处理。通过实验验证了理论知识,并展示了如何在STM32cubemx中实现I2C与EEPROM的交互操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第五章 stm32 cubemx 软件I2C实验以及EEPROM的使用理论及实验过程

前言

本章将讲解stm32通讯协议中的IIC协议,利用cubeMX完成软件和硬件IIC的实现,并结合实验数据,给人更为深刻的体验。
我们结合IIC的具体协议和逻辑分析仪得到的具体实验数据理解IIC协议。

IIC概述

I2C通讯协议是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。

llC: Inter Integrated Circuit,集成电路总线,是一种同步串行半双工通信总线。其中同步说明这种通信方式需要时钟线;串行说明数据一位一位(一个字节8位即0000 0000)在一个数据线上朝一个方向发送;半双工说明一个时间只能进行接收或者发送;总线就是传输数据的通道,如果有多个设备想使用总线进行传输数据多个都需要挂载在总线上,注意在总线上可以有多个主机,多个从机;协议则是传输数据的规则,首先我们讲解该协议。

IIC物理层

IIC物理层

如图所示,即位IIC的物理层,由图可明显看到所有的设备挂载在,两条l2C总线下,一条双向串行数据线(SDA)用来传递数据,一条串行时钟线(SCL)用于数据收发同步。总线通过上拉电阻接到电源。当I2C设备空闲时,会输出高阻态,而当所有设备都空闲,都输出高阻态时,由上拉电阻把总线拉成高电平。
要点

  • IIC总线协议是一个支持多设备的总线。在一个l2C通讯总线中,如图,可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机。
  • 多个设备并不是指无限多个,连接到相同总线的IC数量要受到总线的最大电容400pF限制。
  • 每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的通信。
  • 多个主机同时使用总线时,为了防止数据冲突,会利用仲裁方式决定由哪个设备占用总线。
  • 具有三种传输模式:标准模式传输速率为100kbit/s ,快速模式为400kbit/s,高速模式3.4Mbit/s,但目前大多/2C设备尚不支持高速模式。

IIC协议层

I2C协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。接下来我们将逐个进行实验。

IIC读写概述

主机写入到从机的基本过程,如图所示。由主机发出起始信号表示开始通信,然后发送从机地址及数据传输方向,然后释放总线(总线上有上拉电阻,总线拉高即为释放总线)交给从机,得到从机应答ACK或非应答NACK,紧接着进行数据的接收或者数据传输的终止。
主机写入到从机

实验结果
结果如图所示。
接下来进行具体讲解,各个信号如何产生、代码实现、实验反馈。

起始、停止信号及代码

理论说明
如图所示
总线电平

  • 起始:当SCL线是高电平时,SDA线从高电平向低电平切换。

  • 停止:当SCL是高电平时,SDA线由低电平向高电平切换。

代码实现
代码如下(示例):

void I2C_SCL_1()//SCL电平拉高
{
   
    HAL_GPIO_WritePin(GPIO_PORT_I2C, I2C_SCL_PIN, GPIO_PIN_SET);
}
void I2C_SCL_0()
{
   
    HAL_GPIO_WritePin(GPIO_PORT_I2C, I2C_SCL_PIN, GPIO_PIN_RESET);
}
void I2C_SDA_1()
{
   
    HAL_GPIO_WritePin(GPIO_PORT_I2C, I2C_SDA_PIN, GPIO_PIN_SET);
}
void I2C_SDA_0()
{
   
    HAL_GPIO_WritePin(GPIO_PORT_I2C, I2C_SDA_PIN
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值