学习嵌入式的第四十三天——ARM——I2C

1. 简述线与特性是什么

在两个芯片链接的对应引脚上,当一方输出高电平时,则实际的电平高低由另一方决定

2. start信号与stop信号是什么样的

start:在时钟信号为高电平时的一个数据信号线上的下降沿

stop:在时钟信号为高电平时的一个数据信号线上的上升沿

3. 简述IIC通信时序(高地址优先)

根据时钟高电平只能采样数据,低电平只能修改数据的规则,可以很好的保证数据的稳定

主设备进行写:

在总线空闲状态下总线上的SCL和SDA处于高电平,想要通信的设备在SCL高电平时,SDA产生一个下降沿,为start信号,发送方发送从设备的地址与数据流向位(以写为例),接收方发送ACK,发送方接收到ACK后接着发送数据存储在寄存器中的地址,接收方发送ACK,发送方发送具体数据,每发送一个字节,接收方都应该进行一次应答,当发送方想要结束通信时,需要在ACK应答之后,在SCL高电平时产生一个SDA的上升沿,代表stop信号,结束这次通信。

主设备进行读:

在总线空闲状态下总线上的SCL和SDA处于高电平,想要通信的设备在SCL高电平时,SDA产生一个下降沿,为start信号,发送方发送从设备的地址与数据流向位(0:写),接收方发送ACK,发送方接收到ACK后接着发送数据存储在寄存器中的地址,接收方发送ACK,发送方发送stop信号,发送方接着重发start信号,再次发送从设备地址与数据流向位(1:读),从设备应答,从设备发送具体数据,每发送一个字节,主设备都应该进行一次应答,当主设备想要结束通信时,发送NACK应答之后,在SCL高电平时产生一个SDA的上升沿,代表stop信号,结束这次通信。

相关推荐
L***一13 分钟前
2026届大专跨境电商专业毕业生就业能力提升路径探析
学习
.小墨迹25 分钟前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
ZH154558913135 分钟前
Flutter for OpenHarmony Python学习助手实战:模块与包管理的实现
python·学习·flutter
Gain_chance41 分钟前
33-学习笔记尚硅谷数仓搭建-DWS层交易域用户粒度订单表分析及设计代码
数据库·数据仓库·hive·笔记·学习·datagrip
hqyjzsb1 小时前
盲目用AI提效?当心陷入“工具奴”陷阱,效率不增反降
人工智能·学习·职场和发展·创业创新·学习方法·业界资讯·远程工作
承渊政道1 小时前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
陌上花开缓缓归以1 小时前
LiteOS和RTOS 系统选型分析
arm开发
野犬寒鸦3 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习
陈桴浮海3 小时前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
深圳市九鼎创展科技3 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算