本文以stm32 F303K8为例,不同型号的DMA配置方法略有不同。
本文设计的实验如下:通过USART2接收数据,并通过DMA将串口接受数据循环存入长度为100的uint8型数组。
思维导图总览:

1- 时钟配置

有stm32基本知识应该知道Stm32的每个外设在使用前都需要开启其时钟,否则模块不运行。
2 - DMA配置
使用DMA前要确定外设与DMA连接的通道,不用系列芯片的硬件设计略有不同,因此要去查对应型号的参考手册。

F303K8上USART2_RX的请求连接在DMA1的Channel6上。后续的配置都围绕对DMA1的Channel6的配置。
DMA的结构如下,下图截取自F4系列的数据手册,F3的DMA结构与F1的相同,但不影响借用F4的DMA结构图对配置方法进行理解。

要配置的内容及API如下:


这里没有使用DMA的中断,因此没有对具体的中断进行使能。
3 - 使能外设发出DMA请求

DMA是在外设或软件Requst之后才会发起传输,所以要使能外设发出DMA请求,这里是USART2_RX的请求。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
STM32
+关注
关注
2312文章
11189浏览量
374514 -
dma
+关注
关注
3文章
582浏览量
106248 -
串口中断
+关注
关注
0文章
67浏览量
14662 -
USART串口
+关注
关注
0文章
32浏览量
7320
发布评论请先 登录
相关推荐
热点推荐
STM32标准库、HAL库和LL库介绍
我们在进行STM32开发的时候,使用寄存器进行开发的终究是少数,大多数人还是习惯用库函数进行开发。到目前为止,有标准外设库、HAL
发表于 06-21 15:13
•1.6w次阅读
【NUCLEO-L476RG LL库开发】STM32【LL库】开发使用指南
下载地址:http://pan.baidu.com/s/1c0wjL5m 一楼二楼是具体使用方法。 已完,上传文档和工程模板: STM32 LL库使用指南.pdf
发表于 07-02 03:03
STM32四种库对比:寄存器、标准外设库、HAL、LL
1.我是选择寄存器开发STM32,还是标准外设库呢?
2.你有STM32L0标准外设库吗?
3.HAL库
发表于 03-05 06:17
•50次下载
STM32CubeMX 实战教程:看门狗实验(LL 库)
【LL 库】详细讲述了 STM32CubeMX IWDG 和 WWDG 配置方法及使用方法,内附图文及代码。
发表于 12-05 14:21
•21次下载
使用LL库开发STM32:GPIO口与外部中断
文章目录目的输出与控制输入与端口值读取外部中断总结目的GPIO口使用是单片机开发中最简单的一块,STM32的GPIO口无论是使用HAL库还是LL库
发表于 01-13 16:13
•13次下载
STM32Cbue LL库中巧妙运用“静态内联”
STM32的标准外设库、HAL、LL软件库,都有很多巧妙之处值得大家借鉴。 今天讲讲STM32Cbue
发表于 08-14 14:30
•1662次阅读
stm32 LL库开发-DMA使用方法
评论