你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Stm32-LL库开发(3.2) - DMA使用方法

[复制链接]
攻城狮Melo 发布时间:2022-11-13 16:05
本文以stm32 F303K8为例,不同型号的DMA配置方法略有不同。
    本文设计的实验如下:通过USART2接收数据,并通过DMA将串口接受数据循环存入长度为100的uint8型数组。
- E0 A( h( P0 M" Z/ _) Z6 P3 A
    思维导图总览:
( A5 k5 y' k: Y; ], a5 q

7 u  r2 E. D3 d3 ]$ n1 R- {
微信图片_20221113160535.png

# V* ]3 c: Y/ V% A" N
1- 时钟配置

+ l8 {3 L5 c; ]4 S: _
微信图片_20221113160531.png

/ a9 v, `( t* c0 @
    有stm32基本知识应该知道Stm32的每个外设在使用前都需要开启其时钟,否则模块不运行。7 G+ ?* J, P- P4 b8 z
3 j- D& {. G7 s: \% Q* Z5 ^0 S* F( I
( {. q, e* l8 [( F5 Y
2 - DMA配置

+ N4 V  h9 M4 ?/ t' f+ r
       使用DMA前要确定外设与DMA连接的通道,不用系列芯片的硬件设计略有不同,因此要去查对应型号的参考手册。
& d6 q' X; b( P9 n
微信图片_20221113160525.png

# U: V' m1 @1 O* Q$ R
        F303K8上USART2_RX的请求连接在DMA1的Channel6上。后续的配置都围绕对DMA1的Channel6的配置。" \4 B: L) G" h
        DMA的结构如下,下图截取自F4系列的数据手册,F3的DMA结构与F1的相同,但不影响借用F4的DMA结构图对配置方法进行理解。

4 Z# a3 ]! }+ x& _6 V9 q
微信图片_20221113160514.png

: c. @0 w# A# m/ M1 \
        要配置的内容及API如下:
微信图片_20221113160508.png

1 y, Q2 n' M$ o# R) f9 H5 i
微信图片_20221113160504.png
/ m6 n7 p; t' E0 w6 |
    这里没有使用DMA的中断,因此没有对具体的中断进行使能。
7 O' x7 d6 V2 y& Y
9 _2 m% L8 A2 X
3 - 使能外设发出DMA请求
* n* v! N  _7 s: F. |" w
微信图片_20221113160501.png

, ^) W. L# ?- D$ E: m& X2 K( p9 ?
        DMA是在外设或软件Requst之后才会发起传输,所以要使能外设发出DMA请求,这里是USART2_RX的请求。
" X* F( A+ ~6 R3 q3 I( I' |- e! [4 L
转载自: Vulcan1 O* E& S& V6 ]4 z$ z2 i9 T

2 {7 J9 m8 n0 }
赞 收藏 评论0 发布时间:2022-11-13 16:05

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版