• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的DMA传输 Stream 和Channel

沃尔夫斯堡的羊 2018-01-16 浏览量:2630

再来一发:

 正在配置ADC DMA传输,用的是F4系列的板子,在这里想确认一下一个问题,STM32f4 的 DMA配置是这样的:

DMA_DeInit(DMA2_Stream0);
DMA_InitStructure.DMA_Channel = DMA_Channel_0;  。。。。DMA_Init(DMA2_Stream0, &DMA_InitStructure); DMA_Cmd(DMA2_Stream0, ENABLE);


而在F1的DMA配置里 却是这样的DMA_DeInit(DMA2_Channel0)。。。。。DMA_Init(DMA2_Channel0, &DMA_InitStructure);DMA_Cmd(DMA2_Channel0, ENABLE);
这里的Stream和Channel到底有什么区别啊?按理说,DMA1有7个通道,DMA2有5个通道,通道即是Channel,而每个Channel又有8个数据流Stream,,,而上面的配置怎么一会从Channel?一会从Stream?这是F1和F4的区别么?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • channel你把它看成水管,而Stream看成是接在水管上的出水/进水 水龙头。

    这几个Stream都可以使用同一个channel。同一时间只能有一个Stream打开。

    • 发布于 2018-01-17
    • 举报
    • 评论 1
    • 1
    • 0
电子老工程师 回复了 :没有ROHS和REACH 文件, 回复

其他答案 数量:4
  • 你这个仅仅是部分代码,没有上下文啊,其实你应该仔细去查一下这些库函数的详细说明,就知道异同了。
    • 发布于2018-01-17
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :没有找到 回复

  • 这个只是先初始化stream还是先初始化channel的区别吧
    • 发布于2018-01-17
    • 举报
    • 评论 2
    • 0
    • 0
电子老工程师 回复了  :不是车规级 回复
电子老工程师 回复了  :非车规级 回复

  • 在DMA上F4比F1只是多了几个通道和增加了FIFO。F1,F4的每个DMA通道都能配置成多种外设,对用户而言Stream就是选择外设的一个参数而已

    • 发布于2018-01-17
    • 举报
    • 评论 3
    • 0
    • 0
沃尔夫斯堡的羊 回复了 快没时间了 :F4里的通道配置不应该是Channel 么?怎么代码里是Stream了呢? 回复
快没时间了 回复了 快没时间了 :你可以看编程手册的DMA框图部分,F1只定向到Channel,而F4的是先Channel然后Stream,所以Stream才是决定你将DMA配成了什么外设。其实这关系不大,因为你初始化dma的结构体里是包含channel的,就当他是库的不同好了。 回复
电子老工程师 回复了  :座子:VCF4-1002 TE 回复

  • Stream是STM32固定的,用户不能修改,只能按照官方给定的参数初始化;

    Channel是用户可以改的,不同Channel对应不同外设。

    • 发布于2018-01-17
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :MT52L256M32D1PF-107 WT:B 厂牌:Micron Technology Inc. 回复

相关问题

问题达人换一批

STM32的DMA传输 Stream 和Channel