首页
›
Linux内核与驱动
›
168-嵌入式串口通信
›
《串口DMA乒乓操作:双缓冲机制与收发缓冲区设计》
VIP10
本课程属于:168-嵌入式串口通信
Linux内核与驱动 · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
串口DMA乒乓操作:双缓冲机制与收发缓冲区设计
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
课程导论
什么是乒乓操作?为什么需要双缓冲?D…
课程导论
什么是乒乓操作?…
02
DMA基础回顾
DMA工作原理 · 传输模式(单次/循环/内存到内存) · DMA请求与仲裁
DMA
基础回顾
03
串口DMA发送原理
TXE/TC标志与DMA请求的关系 · 发送缓冲区设计思路
DMA
串口
04
串口DMA接收原理
RXNE标志与DMA请求的关系 · 接收溢出与处理策略
DMA
串口
05
单缓冲区的痛点
数据覆盖风险 · CPU频繁干预 · 实时性差
单缓冲区的痛点
数据覆盖风险
06
双缓冲(乒乓)概念
两个缓冲区交替工作 · 一个被DMA填充 · 一个被CPU处理
双缓冲
乒乓
07
乒乓操作核心机制
缓冲区切换 · 标志位管理 · DMA半传输/完成中断
乒乓操作核心机制
缓冲区切换
08
DMA半传输中断详解
HT中断触发条件 · 在乒乓操作中的关键作用
DMA
半传输
09
DMA传输完成中断详解
TC中断触发条件 · 与HT中断的配合使用
DMA
传输完成
10
环形缓冲区 vs 乒乓缓冲区
设计理念差异 · 适用场景对比 · 内存开销分析
vs
环形缓冲区
11
发送乒乓缓冲区设计
双发送缓冲区 · DMA双缓冲模式(STM32的DBM…
发送乒乓缓冲区设…
双发送缓冲区
12
接收乒乓缓冲区设计
双接收缓冲区 · 利用HT/TC中断实现无缝切换
接收乒乓缓冲区设…
双接收缓冲区
13
STM32 HAL库DMA配置
UART句柄 · DMA句柄初始化 · 中断优先级设置
STM32
HAL
14
HAL_UART_Transmit_DMA与HAL_UART_Receive_D
函数原型 · 参数含义 · 调用时机
HAL
UART
15
自定义乒乓缓冲区结构体
定义bufA · bufA_size · bufB
自定义乒乓缓冲区…
bufA
16
发送乒乓实现代码
初始化 · 数据填充 · DMA发送启动
发送乒乓实现代码
初始化
17
接收乒乓实现代码
初始化 · DMA接收启动 · HT中断处理半帧数据
接收乒乓实现代码
初始化
18
中断服务函数编写
UART_DMA Rx HalfCp… · Rx CpltCallback · Tx CpltCallback
断服务函数编写
UART
19
数据帧定界问题
固定长度帧 vs 不定长帧 · 乒乓操作如何配合空闲中断
数据帧定界问题
vs
20
空闲中断 + 乒乓接收
利用IDLE中断标记帧结束 · 乒乓缓冲区保证不丢帧
空闲
乒乓接收
21
超时机制设计
在乒乓接收中引入软件定时器 · 处理帧超时与粘包问题
超时机制设计
乒乓接收
22
内存对齐与Cache问题
DMA缓冲区地址对齐要求 · MPU/Cache配置 · 数据一致性维护
Cache
内存对齐
23
性能分析
乒乓操作对CPU负载的降低效果 · 最大吞吐量计算 · 延迟分析
性能分析
CPU
24
多串口乒乓扩展
多个UART同时使用乒乓DMA · 资源管理与中断优先级规划
多串口乒乓扩展
UART
25
调试技巧
使用逻辑分析仪观察DMA传输 · 打印缓冲区状态 · 断点调试注意事项
调试技巧
DMA
26
常见错误与排查
DMA配置错误 · 中断未使能 · 缓冲区溢出
常见错误
排查
27
进阶
DMA链表模式(LPDMA)与乒乓操… · 适用于高性能MCU
进阶
DMA
28
进阶
RTOS下的乒乓设计 · 信号量与队列如何与乒乓缓冲区交互
进阶
RTOS
29
实战案例1
高速数据采集系统(1MHz串口) · 使用乒乓DMA实现零丢包
实战案例1
MHz
30
实战案例2
Modbus RTU从机 · 乒乓接收 + 空闲中断实现完整报文解…
实战案例2
Modbus
所属VIP或分类
同VIP:RTOS串口驱动:中断服务函数优先级与多任务互斥
同VIP:STM32串口DMA与空闲中断实现不定长数据接收
同VIP:STM32串口DMA双缓冲实现连续采样不中断