本文以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
+关注
关注
2240文章
10675浏览量
348868 -
dma
+关注
关注
3文章
536浏览量
99071 -
串口中断
+关注
关注
0文章
63浏览量
13615 -
USART串口
+关注
关注
0文章
31浏览量
6723
发布评论请先 登录
相关推荐
转:STM32【LL库】开发使用指南
是我自己XJB取的。。。。。。。。一、 初识LL 库最近论坛发的STM32L476RGNucleo开发板到手了,准备学习玩耍,当然第一步就是下载资料,于是我下载
发表于 06-13 10:48
【NUCLEO-L476RG LL库开发】STM32【LL库】开发使用指南
下载地址:http://pan.baidu.com/s/1c0wjL5m 一楼二楼是具体使用方法。 已完,上传文档和工程模板: STM32 LL库使用指南.pdf
发表于 07-02 03:03
STM32之HAL库、标准外设库、LL库(STM32 Embedded Software)
STM32 Embedded Software 工作以来一直使用ST的STM32系列芯片,ST为开发者提供了非常方便的开发库。到目前为止,
发表于 07-03 15:02
STM32CubeMX 实战教程:看门狗实验(LL 库)精选资料分享
【LL 库】详细讲述了 STM32CubeMX IWDG 和 WWDG 配置方法及使用方法,内附图文及代码。
发表于 08-02 07:09
空闲中断+DMA接收数据使用LL库配置
空闲中断+DMA接收数据使用LL库配置,可与HAL库一起使用,编译文件大小如下:1.代码配置usart1.h主要定义接收缓存,发送缓存,处理缓存大小#ifndef _USART1_H#
发表于 08-17 08:16
STM32串口配合DMA的使用方法回顾
小焦的STM32学习日志(一)2020.4.20数据位大小与大端小端:实际应用:`assert_param();`函数的理解:串口配合DMA的使用方法回顾:实现平台说明:重要的初始化内容:需要额外
发表于 08-20 07:08
STM32CubeMX 实战教程:看门狗实验(LL 库)
【LL 库】详细讲述了 STM32CubeMX IWDG 和 WWDG 配置方法及使用方法,内附图文及代码。
发表于 12-05 14:21
•21次下载
LL库串口+DMA
库的资料少之又少啊!自己做个记录。 使用cubemx可以直接生产LL库的代码(我的工程里是hal库和LL库混用的),LL库串口硬件初始化部分会自动生成,但是传输地址及DMA传输长度
发表于 12-27 19:31
•19次下载
评论