本文以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文章
10674浏览量
348811 -
中断处理
+关注
关注
0文章
92浏览量
10891 -
dma
+关注
关注
3文章
535浏览量
99047 -
USART串口
+关注
关注
0文章
31浏览量
6723
发布评论请先 登录
相关推荐
STM32CUBEMX开发GD32F303(9)----USART通过DMA收发
概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中进行开发,同时通过GD32303C_START开发板内进行验证。 本章主要
STM32F303CB把8K CCMRAM作为FFT运算的输入缓冲区,UART发送固定内容会偶发出现错误的原因?
采用STM32F303CB芯片
把里面的8K CCMRAM作为了FFT运算的输入缓冲区,但是出现了奇怪的现象,UART发送固定内容,但是出现了偶发的内容错误,数据长度正常。比如发送的0x01
发表于 04-24 07:46
在IAR中没有F303RE的构建配置
使用STM32303C-EVAL_SINGLEDRIVE作为选项在下拉菜单中进行构建,请参见附图。为什么IAR下拉菜单中没有F303RE的构建配置?当构建配置错误时,我是否应该能够编译
发表于 06-28 15:07
STM32F303xB/C/D/E, STM32F303x6/8, STM32F328x8, STM32F358xC和STM32F398xE微控制器参考手册
本参考手册涵盖了基于ARM® CORTEX®-M4内核的单片机STM32F303xB/C/D/E, STM32F303x6/8, STM32F328x8,
发表于 11-24 06:09
基于ARM Cortex-M4 STM32F303xB,STM32F303xC的数据手册
【STM32F303xB,STM32F303xC】本文档是关于ARM® Cortex®-M4内核的单片机STM32F303xB,STM32F303xC的数据手册。特征: 核心:带fp
发表于 11-28 06:39
STM32F303xD和STM32F303xE设备勘误表
【STM32F303xD,STM32F303xE】STM32F303xD STM32F303xE单片机的局限性
发表于 11-30 06:40
STM32F302xx/STM32F303xx/STM32F31xxx时钟配置工具介绍
本文档适用于STM32F302xx/STM32F303xx/STM32F31xxx产品系列,是关于内部时钟配置的应用笔记,帮助用户解决了内部时钟配置
发表于 12-01 07:09
怎样使用STM32F303K8在DMA模式中配置ADC1呢
我正在尝试使用 STM32F303K8 在 DMA 模式中配置 ADC1当我调试时,这些值根本没有改变。通过断点,我可以看到调用了 DMA
发表于 12-19 08:31
AN4152 STM32F302xx、STM32F303xx和STM32F31xxx微控制器时钟配置工具
AN4152 STM32F302xx、STM32F303xx和STM32F31xxx微控制器时钟配置工具
发表于 11-24 08:32
•0次下载
评论