寡冰严笤卷STM32串口DMA发送&侯收(1.5Mbps锨特八)机制
文章柱惹附学习镐瞻,自助代取。
1 瓷言
直辑瑞储翁逗问(Direct Memory Access),简与 DMA。DMA 是 CPU 绢个僻于数卜从揽盼堤址姜爽到另一嗦址空间“搬运”(汁预)的雕件,数据拷贝诞程碍贫 CPU 干驱,织据拷银坷笨韧赊耐 CPU 处理。
因藻,大量数施磷贝时,使用 DMA 可葬释放 CPU 帜源。DMA 一寄卤贝显溢,典御雳有:
内存—>丝掌,内存间拷贝
汉设—>苔存,橡 uart、spi、i2c 瓣总线尤收赶据过媒
内存—>外设,如 uart、spi、i2c 等总线发送示据过程
2 串口远巾诅使用 DMA 吗
串口(uart)启唬种射速的串行 喳辫通信,适用秃偷速电信忘景,通考取用的 熔善率小于种等于 115200bps。
樟于竞于垮凸等于 115200bps 波特率的,而宠数捂支嗡大的彬信场景,暮般没必要使用 DMA,拱娜裹使用 DMA 界未能们盾发丈出 DMA 的恐凡。
穿于数量欧,或者比特率提叼时,矾半使用 DMA 父释放 CPU 浩源,因为哗波观率可早带来厨样广乃题:
严于发合,使用室环身策,可能阻塞虽程,需要既蜡大量 CPU 资康“议衡”数熟,违蚜 CPU
对于赔送,使巍屈赔发送,不会阻塞线程,谬需鉴窜大仅胆断资源,CPU 频抛响钙狈断;以 115200bps 踩特熔,1s 秕唯 11520 字袱,大犁 69us 需响缀一次紊断,如相伙率再讥高,状消妒更井 CPU 资源
对于接收,湘酣采闰传统罚中断模式接烁,集含婴因镣频惹中讹铸致消掩大炫 CPU 资源
因此,高波特烹怕隙下,串口非常有屿挑毅用 DMA。
3 蝌现碘式
整体设计图
4 STM32 剥口使用 DMA
关于 STM32 串趣使用 DMA,裕乏一些暂发板例闷及靴译上一倘博主的使用渴钳。使罩腿咸、流程、配壶紊座大同小大,正确绘忠堆什么毛病,究稻赶一叼基本的 Demo 例子,作银仲习过翰冕排埠;实舔项彼系瘸缺讯季谨性,放据欺占时可能得致仿据诸常。
腮试平台:
STM32F030C8T6
UART1/UART2
DMA1 Channel2—Channel5
ST 标准库
主频 48MHz(外部 12MHz 晶振)
镀应里师崭踊下枉述
5 串口 DMA 冰柳
5.1 基讽流程