一句话总结IIC协议

起始信号

在SCL为高的时候把SDA从高拉低

结束信号

反过来

等待ACK

发送完一个Byte的时候要等待从机发送的ACK,此时主机把SDA置为输入状态(高阻态),等待SDA被从机拉高

发送ACK/NACK

主机每读取完一个字节都要发送,如果读取的不是最后一个字节就发送ACK,如果是最后一个字节就发送NACK;ACK就是拉低SDA,NACK就是拉高SDA;

发送时序

拉低->写bit->拉高,最后拉低

读取时序

拉高->读bit->拉低,最后拉高

注:关于ACK

无论是等待ACK还是发送ACK,本质上都是发送方需要知道接收方是否收到了我发送的数据,所以主机发送完需要等待从机给ACK,从机发送完需要等主机给ACK

相关推荐
2401_863318632 小时前
基于单片机的温度控制系统的设计
单片机·嵌入式硬件
z20348315203 小时前
AI模型部署草稿
人工智能·单片机·嵌入式硬件
The Kite4 小时前
乐鑫ESP32-C3-DevKitM-1开发板深度测评:性能、功能与应用场景解析
单片机
CQ_YM4 小时前
51单片机(4)
单片机·嵌入式硬件·51单片机
小痞同学6 小时前
【铁头山羊STM32】HAL库 1.GPIO部分
stm32·单片机·嵌入式硬件
风痕天际6 小时前
ESP32-S3开发教程三:蜂鸣器与FreeRTOS多任务协同
单片机·嵌入式·freertos·esp32s3
ShiMetaPi6 小时前
GM-3568JHF丨ARM+FPGA异构开发板应用开发教程:01 UART读写案例
arm开发·单片机·嵌入式硬件·fpga开发·fpga·rk3568
松涛和鸣6 小时前
55、ARM与IMX6ULL入门
c语言·arm开发·数据库·单片机·sqlite·html
代码游侠7 小时前
学习笔笔记——ARM 嵌入式系统与内核架构
arm开发·笔记·嵌入式硬件·学习·架构