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

STM32F429 DMA使用疑问

[复制链接]
ajianyes 提问时间:2018-8-10 09:45 /
最近在使用STM32F429的DMA时候,发现一个问题,当多个外设都使用到同样的DMA_STREAM的时候,就会发生冲突(后面配置的DMA可用,前面配置的不能用),我用的USART6_TX用的是DMA2_Stream6通道5,TIM1_CC3使用的也是DMA2_Stream6,通道使用6,这两者理论上不应该产生冲突。
很少疑惑啊,求助各位!!!
收藏 评论10 发布时间:2018-8-10 09:45

举报

10个回答
feixiang20 回答时间:2018-8-11 00:54:00
就像是407里先看DMA的物理结构, 8个channel共用一个stream,或者说每个stream包含8个channel。 同时开启多个stream是可行的,看结构也可行,内部会协调工作。但是针对一个stream应当不能同时开启多个channel,因为这里有8选一开关。 从配置寄存器也可以看出这一点。 所以,可能要等前面的channel完成后,再重新配置,选择其他channel。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

ajianyes 回答时间:2018-8-10 09:46:35
STM32的外设很多,我们在做项目的时候肯定时候能用DMA尽量用,如果这样会产生冲突那这些DMA的功能就无法全力施展开
MrJiu 回答时间:2018-8-10 10:04:53
优先级了解一下。。。
ajianyes 回答时间:2018-8-10 12:12:34
MrJiu 发表于 2018-8-10 10:04
优先级了解一下。。。

就是DMA的传输优先级设置这里么,我多设置成HIGH了,我改一下试试,谢谢
MrJiu 回答时间:2018-8-10 14:02:41
ajianyes 发表于 2018-8-10 12:12
就是DMA的传输优先级设置这里么,我多设置成HIGH了,我改一下试试,谢谢

根据不同得要求,设置不同得优先级。。。设置同一个优先级,肯定会出现问题,当然了,不同的而优先级也只是保证了,优先级高的,具体什么情况,需要看资料!!!

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

ajianyes 回答时间:2018-8-10 15:16:38
MrJiu 发表于 2018-8-10 14:02
根据不同得要求,设置不同得优先级。。。设置同一个优先级,肯定会出现问题,当然了,不同的而优先级也只 ...

嗯,就是DMA2_Steam6在USART6与TIM1_CH1输入捕获函数里面初始化了2次,从目前看来视乎DMA的每一个STREAM都只能对应一个外设,不能被其他的外设同时占用。
cout zeng 回答时间:2018-8-11 15:09:41
支持
ajianyes 回答时间:2018-8-13 08:46:27
feixiang20 发表于 2018-8-11 00:54
就像是407里先看DMA的物理结构, 8个channel共用一个stream,或者说每个stream包含8个channel。 同时开启多 ...

我自己查证了,确实每个STREAM只能打开一个通道,因为软件初始化就是针对DAM_STREAM的,
这样的话,这个F4系列的很多DMA只能错开使用了
ajianyes 回答时间:2018-8-13 08:47:03
tianbing201 回答时间:2019-1-11 10:56:26
遇到同样问题,学习了!
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版