硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3360|回复: 3
收起左侧

[DMA] MDMA传送完成后不再自动重触发,EN被置0的疑问

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2020-6-25 16:32:14 | 显示全部楼层 |阅读模式
目的:
        1 首先每次TIM1的捕获事件触发DMA2_Stream6传送CNT,CCR1,CCR2,这3个WORD到一个内存数组,然后等待捕获事件再次触发(现在能正常工作)
        2 接着每次通过MDMA_REQUEST_DMA2_Stream6_TC触发MDMA_Channel0(MDMA_BUFFER_TRANSFER模式),传送TIM2的CNT,CCR1,这2个WORD到一个内存数组,然后等待                        MDMA_REQUEST_DMA2_Stream6_TC的再次触发
        3 重复以上两个过程
问题:
        现在是上电后第1次执行上述1,2步是正常的,相关传送都能够正确完成,但当第2次时,MDMA的EN已变成0,不会再执行第2步传送.需要用软件HAL_MDMA_Start重新启动MDMA_Channel0才行
当前设置:
        mdma->Init.Request                                                = MDMA_REQUEST_DMA2_Stream6_TC;
        mdma->Init.TransferTriggerMode                        = MDMA_BUFFER_TRANSFER;
        mdma->Init.Priority                                                = MDMA_PRIORITY_MEDIUM;
        mdma->Init.Endianness                                        = MDMA_LITTLE_ENDIANNESS_PRESERVE;
        mdma->Init.SourceInc                                        = MDMA_SRC_INC_DISABLE;
        mdma->Init.DestinationInc                                = MDMA_DEST_INC_DISABLE;
        mdma->Init.SourceDataSize                                = MDMA_SRC_DATASIZE_WORD;
        mdma->Init.DestDataSize                                        = MDMA_DEST_DATASIZE_WORD;
        mdma->Init.DataAlignment                                = MDMA_DATAALIGN_PACKENABLE;
        mdma->Init.SourceBurst                                        = MDMA_SOURCE_BURST_SINGLE;
        mdma->Init.DestBurst                                        = MDMA_DEST_BURST_SINGLE;
        mdma->Init.BufferTransferLength                        = 4;
        mdma->Init.SourceBlockAddressOffset                = 0;
        mdma->Init.DestBlockAddressOffset                = 0;
        HAL_MDMA_Init(mdma);
谢谢!

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107272
QQ
发表于 2020-6-25 22:32:12 | 显示全部楼层
大概看了下,意思是TIM采用DMA捕获,然后DMA触发MDMA传输,是这个意思吧
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2020-6-25 22:34:44 | 显示全部楼层
本帖最后由 wowflying 于 2020-6-26 00:09 编辑

是的,ST的论坛的厂方人员也是这么建议的,如果要实现非LTDC_LINE_IT标准硬件触发传送的话
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107272
QQ
发表于 2020-6-27 00:39:53 | 显示全部楼层
通用DMA触发MDMA,我记得有案例的,你有测试过是否正常。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-24 02:48 , Processed in 0.154892 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表