首页
›
Linux内核与驱动
›
202-MCU驱动工程实战
›
《MCU驱动开发:寄存器配置实现I2C通信中断与轮询切换》
VIP10
本课程属于:202-MCU驱动工程实战
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
MCU驱动开发:寄存器配置实现I2C通信中断与轮询切换
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
I2C协议基础
I2C总线物理层 · SCL/SDA时序 · 起始条件与停止条件
I2C
协议基础
02
I2C数据帧格式
7位地址模式 · 10位地址模式 · 读写位
I2C
数据帧格式
03
MCU I2C外设架构
I2C模块内部框图 · 时钟发生器 · 数据移位寄存器
MCU
I2C
04
I2C寄存器映射
控制寄存器(CR) · 状态寄存器(SR) · 数据寄存器(DR)
I2C
寄存器映射
05
I2C初始化配置
GPIO复用功能配置 · 时钟使能 · I2C时序参数计算(SCL频率
I2C
初始化配置
06
轮询模式主发送
寄存器级实现START · 发送从机地址+写位 · 发送数据字节
轮询模式主发送
START
07
轮询模式主接收
寄存器级实现START · 发送从机地址+读位 · 接收数据字节
轮询模式主接收
START
08
轮询模式状态机
轮询等待TXE/RXNE/STOPF… · 超时处理机制
轮询模式状态机
TXE/RXNE/STO…
09
中断模式原理
I2C中断事件类型(TXE · RXNE · STOP
断模式原理
I2C
10
中断优先级配置
NVIC嵌套向量中断控制器 · 抢占优先级与子优先级设置
断优先级配置
NVIC
11
中断服务函数设计
ISR中读取SR1/SR2清除中断标… · 状态机跳转
断服务函数设计
ISR
12
中断模式主发送
中断触发式发送数据 · 自动处理ACK/NACK · STOP自动生成
断模式主发送
断触发式发送数据
13
中断模式主接收
中断触发式接收数据 · 最后字节NACK控制 · STOP生成
断模式主接收
断触发式接收数据
14
中断模式从机发送
从机地址匹配中断 · 数据发送中断 · STOP中断处理
断模式从机发送
从机地址匹配
15
中断模式从机接收
从机地址匹配中断 · 数据接收中断 · STOP中断处理
断模式从机接收
从机地址匹配
16
轮询与中断切换设计
全局状态变量 · 操作模式枚举(轮询/中断) · 切换API接口
轮询
断切换设计
17
切换实现——发送方向
轮询→中断切换时寄存器重配置 · 中断使能/禁能控制
切换实现
发送方向
18
切换实现——接收方向
中断→轮询切换时清空FIFO · 重置状态机
切换实现
接收方向
19
切换安全性
临界区保护 · 关中断/开中断 · 防止切换过程中数据错乱
切换安全性
临界区保护
20
错误处理机制
总线错误(BERR) · 仲裁丢失(ARLO) · 应答失败(AF)
错误处理机制
BERR
21
中断与轮询性能对比
CPU占用率 · 响应延迟 · 功耗分析(表格对比)
轮询性能对比
CPU
22
多主机环境
仲裁机制 · 从机地址冲突检测 · 多主机切换策略
多主机环境
仲裁机制
23
DMA+I2C简介
DMA请求映射 · DMA传输完成中断与I2C中断协同
DMA+I2C
简介
24
寄存器级调试技巧
使用逻辑分析仪抓取SCL/SDA波形 · 对照寄存器值分析
寄存器级调试技巧
SCL/SDA
25
常见问题排查
总线锁死 · 时钟拉伸 · 从机无应答
常见问题排查
总线锁死
26
实战项目1
EEPROM读写驱动——轮询模式实现…
实战项目1
EEPROM
27
实战项目2
EEPROM读写驱动——中断模式实现… · 切换演示
实战项目2
EEPROM
28
实战项目3
温湿度传感器(SHT30)驱动——轮…
实战项目3
SHT30
29
实战项目4
温湿度传感器(SHT30)驱动——中… · 切换演示
实战项目4
SHT30
30
课程总结与扩展
I2C驱动设计模式 · 可移植性考虑 · RTOS集成建议
课程总结
扩展
所属VIP或分类
同VIP:MCU-GPIO驱动开发与轮询中断协同设计
同VIP:MCU-I2C从机驱动开发与应答时序调试
同VIP:MCU-SPI轮询DMA驱动开发与传输验证