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

基于STM32H563 UART+DMA 2D功能经验分享

[复制链接]
攻城狮Melo 发布时间:2023-8-13 14:27
我这里使用STM32H563开发板来简单演示一下DMA 2D模式的应用。所谓DMA 2D模式,个人理解是DMA可以通过事先设置块内寻址偏移量和块寻址偏移量来动态调整DMA的寻址方式及能力。换句话说,DMA在进行数据传输时,块内寻址不再总是固定相邻存放,而是可以通过编程决定相邻两次传输时访问数据的地址间隔。对于重复性的块传输,也不再是简单的每次从同一位置再开始,而是可以根据块地址的偏移量调整从新开始传输的起始地址。
描述起来有点抽象,不妨加点看图说话。现在假设针对同一DMA请求发起三次【三轮】传输,对应3个DMA传输块。【注:手机模式下图片可放大查看】
6 Y+ j8 z$ L$ f# T7 L( p/ _
微信图片_20230813142630_3.png
" f9 p4 C2 V! ]& V: R1 e& n/ ?' y  Q
如上图所示,第一次传输了5个红色标示的数据【即第1块】,按图示进行数据访问。第二次、第三次也类似第一次分别传输了5个绿色数据【即第2块】和5个蓝色数据【即第3块】。显然每个传输块内的数据访问规则一样,两两间隔2个存储空间。同时当第1次传输完成后,开启第2次传输时,或者说做完第2次传输后开启第3次传输时,起始地址都相对当前位置往后退了14个地址空间再开始。
关于DMA 2D传输的原理大致说到这里,供参考理解。现在依然基于上面的图示内容,使用STM32H563的USART来具体演示DMA 2D功能。
开发板使用STM32H563ZI Nucleo板,芯片的USART3与板载STLINK的VCP相连。借助PC端的串口调试助手分批发三组数据给MCU,内容分别是5个字符R、5个字符G和5个字符B。开启USART3 接收的DMA 2D功能。
顺便提醒下,STM32H5系列的GPDMA并非所有通道都支持DMA 2D寻址功能。DMA通道是否支持2D功能在CubeMx配置界面已经写得很分明了。使用CubeMx配置的话,选择合适的即可。这里我选择GPDMA1的DMA CH6,它支持DMA 2D功能。
使用STM32CubeMx的基本配置如下:
* u7 M+ J9 i$ _9 i1 |
微信图片_20230813142630_2.png
( B2 c9 q$ ~7 y( O. E
微信图片_20230813142630_1.png
+ Z: T1 {% M( [% L! Y: t* a7 ]* i
上面配置里的重点就是那个2D寻址的配置。其实开篇也大致介绍了,这里进一步具体解释。现在是USART3 DMA接收,显然源地址是固定的,即USART3的接收数据寄存器,所以这里跟源地址有关的偏移都是0。DMA访问的目的地址是内存,是可变的。在块内每存放1个数据则向前偏移2个位置,对应下面的Destination Address Offset值。每1块传输完成后开始下一轮传输时,起始地址刚好回退14个位置,对应下面的Block Destination Address Offset值,回退为,前进为。这里一共重复做了3次块传输,对应下面的Repeat counter值。

0 I  B: k$ [; |& i- t
微信图片_20230813142630.png
; v" ~  q5 z4 _2 O2 b8 |1 T6 @
实际上,经过3轮重复的DMA块传输,接收到的数据就是下图箭头所指的图案样子。
2 y: g0 j6 u2 I0 D
微信图片_20230813142631_1.png

$ j* J, Q* g9 n- u: c) ]
使用STM32CubeMx完成配置,添加用户代码即可调试验证。需手动添加的用户代码主要是下面两行:
__HAL_LINKDMA(&huart3, hdmarx, handle_GPDMA1_Channel6);
HAL_UART_Receive_DMA(&huart3, (uint8_t *)aRxBuffer, 5); //每块【轮】接收5个数据

* r# n6 ?0 [; D, O7 e
下面就是基于调试得到的结果。通过3次独立的DMA接收,数据被有规律地按照RGB顺序存储起来。我们可以结合下方调试结果的截图来理解。
+ Z- K! M4 O8 s' p# g# w5 P
微信图片_20230813142631.png

9 W- l: n+ y; S9 I/ @3 b" q
OK,关于STM32H563芯片DMA 2D功能的应用演示就介绍到这里。抛砖引玉,具体应用时灵活使用即可。

/ z2 h; y4 N  l+ t1 T$ U$ t
转载自: 茶话MCU
如有侵权请联系删除
) {) E) \8 d: H# y/ k* k7 `4 D
6 F# e8 @5 m9 [* X5 ^6 H" i% x0 ~
收藏 评论0 发布时间:2023-8-13 14:27

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版