stm32 LL库开发-DMA使用方法

电子说

1.2w人已加入

描述

本文以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的请求。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分