通信方式(一)——STM32中的IIC相关问题

本文详细介绍了STM32中的IIC通信协议,包括IIC的概述、空闲状态、三种信号(起始、终止、应答)及数据传输过程。强调了数据有效性规则,即在时钟线SCL的上升沿前准备数据并在下降沿前保持稳定。讨论了主设备如何向从设备写入和读取数据,并提到了主设备如何在写入后重启起始条件以立即从从设备读取数据。同时,文章还涵盖了IIC代码的分析,涉及iic.h和iic.c文件。
摘要由CSDN通过智能技术生成

IIC的概述

(1)I2C总线是一种串行数据总线,只有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,两根线可以挂多个设备。I2C设备(绝大多数)里有个固定的地址,只有在两条线上传输的值等于I2C设备的固化地址时,其才会作出响应。通常我们为了方便把I2C设备分为主设备和从设备,基本上谁控制时钟线(即控制SCL的电平高低变换)谁就是主设备。
(2)I2C总线通过上拉电阻接正电源。当总线空闲时。两根线均为高电平。连到总线上的任意器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。上拉电阻一般在4.7~10k之间。
在这里插入图片描述

空闲状态

当IIC总线的数据线SDA和时钟线SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。

三种信号

(1)起始信号:SCL为高电平期间,SDA出现下降沿
在这里插入图片描述
(2)终止信号:SCL为高电平期间,SDA出现上升沿
在这里插入图片描述
注意:起始信号和终止信号都是由主机发送的。在起始信号产生之后,总线就处于被占用的状态,在终止信号产生之后,总线就处于空闲状态。

(3)应答信号:发送器每发送一个字节(8个bit),就在时钟脉冲9期间释放数据线,由接收器反馈一个应答信号。应答信号为低电平时,规定为有效应答位(ACK,简称应答位),表示接收器已经成功地接收了该字节;应答信号为高电平时,规定为非应答位(NACK),一般表示接收器接收该字节没有成功。
即每当发送器传输完8bit的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值