尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ARM学习笔记(8)
今天整理 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 之类就是往它寄存器地址里读写数据。
RELATED

相关推荐

ESP8266与KiwisIoT实现低成本远程水位监测与告警系统

ESP8266与KiwisIoT实现低成本远程水位监测与告警系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/24 10:24:33
服装供应链SCM系统架构解析:库存周转的 MRP 运算与数据同源链路

服装供应链SCM系统架构解析:库存周转的 MRP 运算与数据同源链路

中秋(9 月 25 日)与国庆(10 月 1 日)相邻,其间仅三个工作日,供应链备货窗口被显著压缩。库存周转的瓶颈通常不在备货量级,而在链路数据的接续:一套服装供应链SCM系统若在算、转、看三…

📅 2026/9/24 10:24:33
Tinkercad电路仿真实战:从点亮LED到Arduino闪烁与555定时器

Tinkercad电路仿真实战:从点亮LED到Arduino闪烁与555定时器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/24 10:24:33
MORE NEWS

更多资讯

📰

单视频三维实时重构驱动的武警突发事件力量调度推演与区域封控方案智能生成技术白皮书

前言武警突发事件应急处置、现场力量调度、区域立体封控是遂行处突维稳、应急安保、风险隔离任务的核心关键环节。面对人群聚集滋事、突发冲闯、现场险情、陌生区域突发警情等各类突发事件,传统处置模式长期依赖“人工看屏、经验研判、口头调度、固定预案”&#xf…

📰

CTPN在营业执照文字检测中的实践:从开源模型到微调落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

如何根据鸟类的叫声识别鸟类种类

鸟类的叫声是识别鸟种的重要线索。即使在树叶茂密、光线不足或鸟类藏在远处时,我们也可以通过声音判断它可能属于哪一类鸟。掌握鸟类鸣声识别,需要结合声音特征、栖息环境、活动时间和外形观察等信息,而不能只依赖“听起来像什么”。 一、认…

📰

MiFlash刷机Sparse Super错误排查:驱动、动态分区与线刷全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

示波器探头使用误区与正确方法:带宽、衰减比、接地与补偿

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

STM32F103C8T6 寄存器方式流水灯实验报告

STM32F103C8T6 寄存器方式流水灯实验报告 一、实验目的 熟悉STM32F103C8T6最小系统板(Blue Pill)硬件结构,了解最小系统构成。理解STM32 GPIO寄存器原理,掌握端口时钟、引脚模式、输出寄存器的配置。使用寄存器直接编程&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬