STM32/GD32——I2C通信协议

芯片选型

Ciga Device --- GD32F470系列

通讯规则

**I2C协议(或称IIC)**是由飞利浦(现在的恩智浦半导体)公司开发的一种通用的总线协议。它使用两根线(时钟线和数据线)来传输数据,支持多个设备共享同一条总线。 I2C协议通常用于连接微控制器、传感器、存储器和其他外围设备。

2C总线包括两根信号线:SDA(串行数据线)和SCL(串行时钟线)。

这两根信号线共用一个总线,因此在总线上可以连接多个设备。在I2C总线上,每个设备都有一个唯一的地址,用于标识设备。

  • SCL线是时钟线,用于控制数据传输的速度和时序;
  • SDA线是数据线,用于传输实际的数据.

写流程

  1. 开始
  2. 发送设备地址,等待从设备响应
  3. 发送寄存器地址,等待从设备响应
  4. 发送一个字节,等待从设备响应。这个操作是循环执行,直到没有数据
  5. 停止

读流程

  1. 开始
  2. 发送设备地址(写地址),等待从设备响应
  3. 发送寄存器地址,等待从设备响应。
  4. 开始
  5. 发送设备地址(读地址),等待从设备响应
  6. 接收一个字节,发送响应给从设备。这个操作是循环执行,直到没有数据。当是最后一个数据时,发送空响应
  7. 停止

I2C软实现代码案例

I2C硬实现代码案例

屏幕显示移植案例

相关推荐
CiLerLinux2 小时前
第四十九章 ESP32S3 WiFi 路由实验
网络·人工智能·单片机·嵌入式硬件
时光の尘2 小时前
【PCB电路设计】常见元器件简介(电阻、电容、电感、二极管、三极管以及场效应管)
单片机·嵌入式硬件·pcb·二极管·电感·三极管·场效应管
Lu Zelin2 小时前
单片机为什么不能跑Linux
linux·单片机·嵌入式硬件
宁静致远20213 小时前
stm32 freertos下基于hal库的模拟I2C驱动实现
stm32·嵌入式硬件·freertos
Wave8458 小时前
STM32--智能小车
stm32·单片机·嵌入式硬件
wdfk_prog10 小时前
[Linux]学习笔记系列 -- lib/timerqueue.c Timer Queue Management 高精度定时器的有序数据结构
linux·c语言·数据结构·笔记·单片机·学习·安全
helesheng13 小时前
用低成本FPGA实现FSMC接口的多串口(UART)控制器
stm32·fsmc·fpga·uart控制器
夜月yeyue13 小时前
个人写HTOS移植shell
c++·mcu·算法·性能优化·架构·mfc
充哥单片机设计14 小时前
【STM32项目开源】基于STM32的智能家居环境(空气质量)检测系统
stm32·单片机·嵌入式硬件
夜月yeyue14 小时前
ART 加速器、流水线与指令预测的关系详解
linux·服务器·c语言·单片机·嵌入式硬件·性能优化·嵌入式高阶技巧