OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4116|回复: 9

请教可否用DMA一次控制两组GPIO口32个位的数据

[复制链接]

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-27
在线时间
16 小时
发表于 2018-7-5 17:01:26 | 显示全部楼层 |阅读模式
10金钱
DMA最多一次可以搬运一个32位的数据,我想把这个32位数分别放在两组GPIO口的ODR里面,有这种可能吗?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-7-5 17:01:27 | 显示全部楼层
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2018-2-18
在线时间
14 小时
发表于 2018-7-5 21:55:43 | 显示全部楼层
DMA有通道支持GPIO的??
回复

使用道具 举报

31

主题

265

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
413
金钱
413
注册时间
2018-1-9
在线时间
65 小时
发表于 2018-7-6 09:35:49 | 显示全部楼层
一路都不行吧
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-27
在线时间
16 小时
 楼主| 发表于 2018-7-10 09:26:58 | 显示全部楼层
可能我说的不够清楚,我现在是把DMA的目标地址写了一组GPIO的ODR地址,就可以完成16个口的并行输出,我是用TIM触发DMA的;我的目标是想并行输出32个口的数据
回复

使用道具 举报

36

主题

227

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3096
金钱
3096
注册时间
2016-4-15
在线时间
350 小时
发表于 2018-7-10 10:58:16 | 显示全部楼层
本帖最后由 liujie136997963 于 2018-7-10 10:59 编辑
wwwlzh1984 发表于 2018-7-10 09:26
可能我说的不够清楚,我现在是把DMA的目标地址写了一组GPIO的ODR地址,就可以完成16个口的并行输出,我是用 ...

怎么可能嘛,地址就一个,那还能分身

回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-27
在线时间
16 小时
 楼主| 发表于 2018-7-10 14:41:43 | 显示全部楼层
GPIOA->ODR=0xFF00 这样A0到A15分别就是1111111100000000,开始我没有用DMA直接这样写,就可以并行16位输出,用上DMA后我把GPIOA->ODR首地址放入DMA输出地址,数据源地址用这个数据的内存地址,同样在A0到A15得到1111111100000000。我现在想做的是有一个32位数据0xFF00FF00,我想同时在A0到A15 ,B0到B15输出11111111000000001111111100000000
回复

使用道具 举报

29

主题

338

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1181
金钱
1181
注册时间
2018-4-13
在线时间
170 小时
发表于 2018-8-21 09:45:09 | 显示全部楼层
并行可能做不到了,不过可以分时呀。
回复

使用道具 举报

2

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-27
在线时间
16 小时
 楼主| 发表于 2018-11-30 11:38:58 | 显示全部楼层
我用了另一种思路解决了,用两个TIM分别控制两个DMA,达到触发时间两个DMA各自搬运16位到不同ODR地址
回复

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2020-5-3
在线时间
19 小时
发表于 2020-8-19 21:25:25 | 显示全部楼层
wwwlzh1984 发表于 2018-11-30 11:38
我用了另一种思路解决了,用两个TIM分别控制两个DMA,达到触发时间两个DMA各自搬运16位到不同ODR地址

这个回存在通道的优先级问题吧
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 11:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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