OpenEdv-开源电子网

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

关于手把手视频中DMA使用的几个问题

[复制链接]

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
发表于 2020-2-13 15:04:30 | 显示全部楼层 |阅读模式
1金钱
最近刚看完手把手学32教学视频里的DMA一章,但是有几处还不太理解的地方1、使用DMA传输的过程中,CPU是可以完全独立出来去干别的工作嘛?如果传输期间让CPU去修改被使用的数据存储器里的数据会怎么样呢?
2、视频中DMA给串口发送数据时,如果串口的数据没有发走怎么办,DMA会自动判断发送是否完成嘛?
3、DMA的传输方式里没有外设到外设,如果我用ADC采集或者SPI接受数据再转给串口发送至上位机,是必须将两步分开做吗?先使用DMA的外设到存储器把数据存到一个数组里,再用DMA把数组里的数据发送给串口?
4、在问题3中,如果是分开做的,一般更倾向于采集时使用DMA还是发送时使用,还是两步都要用呢?
希望有相关经验的人可以给解答 万分感谢~~~


最佳答案

查看完整内容[请看2#楼]

1,是的,CPU可以休息 。但是你不要去修改DMA传输的内存,就像别人在走路不关你事情一样,你愣是要给他踹一脚,你说怎么办? 2,串口有相关标志位的,DMA通过串口的DMA请求来传输下一个数据给串口的DR,如果串口没传输完,请求就不会发给DMA,DMA就处于停滞状态。 3,理论上是的,不过也有可能可以,不过得自己尝试。 4,都可以,看你自己喜欢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-2-13 15:04:31 | 显示全部楼层
1,是的,CPU可以休息 。但是你不要去修改DMA传输的内存,就像别人在走路不关你事情一样,你愣是要给他踹一脚,你说怎么办?
2,串口有相关标志位的,DMA通过串口的DMA请求来传输下一个数据给串口的DR,如果串口没传输完,请求就不会发给DMA,DMA就处于停滞状态。
3,理论上是的,不过也有可能可以,不过得自己尝试。
4,都可以,看你自己喜欢
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2765
金钱
2765
注册时间
2018-11-8
在线时间
438 小时
 楼主| 发表于 2020-2-15 10:02:02 | 显示全部楼层
我明白了! 谢谢原子老师~
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 18:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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