首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
ARM学习笔记(8)
📅 2026/9/24 10:26:27
✍️ 爱科研究院
👁 阅读 3,247
今天整理 i2c 的笔记总线这个东西看着简单把时序捋清楚也就通了大半。I2C 是什么I2C 是两根线的串行通信总线一根 SCL 时钟线、一根 SDA 数据线。靠地址寻址从机地址是 7 位最多能挂 127 个从机。起始信号之后发的第一个字节很有讲究高 7 位是设备地址低 1 位是数据流向。最低位是 0 表示主机写数据给从机是 1 表示从机读数据给主机。比如笔记里记的 0x10 展开成二进制就是 0001 0001 。I2C 的通信速率分几档100 kHz、400 kHz、1.x M、3.x M用得最多的是标准 100k 和快速 400k。I2C 时序时序核心就是 SCL 和 SDA 两条线的电平配合分四步- 起始信号SCL 为高电平时SDA 从高变低出现下降沿- 数据传输SCL 高电平期间SDA 电平保持稳定接收方在这个窗口采样SCL 低电平期间SDA 可以随意改变发送方趁这段时间发数据- 应答信号第 9 个时钟周期接收方向发送方回复应答——低电平是 ACK高电平是 NACK- 结束信号SCL 为高电平时SDA 从低变高出现上升沿把收发两端和电平对上写驱动时思路就顺了// 起始信号SCL 高电平时SDA 高-低static void i2c_start(void){SDA 1; SCL 1;SDA 0; // 下降沿SCL 0;}// 结束信号SCL 高电平时SDA 低-高static void i2c_stop(void){SDA 0; SCL 1;SDA 1; // 上升沿}// 发一个字节SCL 低电平时放数据高电平时采样static void i2c_write_byte(unsigned char data){for (int i 0; i 8; i){SCL 0;SDA (data 0x80) ? 1 : 0; // 先发高位data 1;SCL 1; // 接收方在高电平采样}}寄存器访问外设的寄存器映射在地址空间里从 0xFF 一路排到 0x00 每个寄存器对应一块存储单元。读写的时候按地址去操作寄存器位就行这也是 I2C 最常见的应用场景——挂个传感器、EEPROM 之类就是往它寄存器地址里读写数据。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/24 10:26:27
ESP8266与KiwisIoT实现低成本远程水位监测与告警系统
2026/9/24 10:26:27
服装供应链SCM系统架构解析:库存周转的 MRP 运算与数据同源链路
2026/9/24 10:26:27
Tinkercad电路仿真实战:从点亮LED到Arduino闪烁与555定时器
2026/9/24 11:16:34
工业AI落地实战:PLC与存量设备的智能升级路径
2026/9/24 11:16:34
咪咕盒子MGV2000线刷教程:Amlogic USB Burning Tool刷机全攻略
2026/9/24 11:16:34
13.56MHz远距离RFID读卡技术原理与国产芯片选型指南
2026/9/24 11:16:34
0成本实现CAD图纸精准翻译
2026/9/24 11:16:34
无人机飞控中加速度计与地磁传感器选型实战指南
2026/9/24 11:11:32
POJ新手入门指南:从注册到AC第一题
2026/9/24 0:00:45
百度Comate研发提效实践:架构拆解与落地避坑指南
2026/9/24 0:00:45
柔软的L:汉语语流中被忽视的舌肌张力控制
2026/9/24 0:00:45
1D-CNN时间序列建模实战:从Conv1d原理到工业落地
2026/9/23 19:31:10
深入解析Transformer多头注意力机制与工程优化
2026/9/23 19:31:10
OpenClaw 的 Skills 跑学习任务,模型通道改到 TaoToken 通道行不行?
2026/9/23 19:31:09
ChatGPT报错Oops, an error occurred! 全链路排查指南