DMA传输完成后会把目标地址清零吗?急!!!

009. 2018-06-06 07:52:55
DMA设置里会指定源地址和目标地址。
我设置的是让ADC转换后的数值通过DMA直接传输到我定义的一个数组里,每4000个完成一次传输进入DMA中断,请问每传输完成一次我定义的这个数组会清零吗?
如果不会的话,下次DMA传输是一个一个替换里面的值吗?
...全文
1584 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cp1300 2018-06-10
  • 打赏
  • 举报
回复
不会清零的,会自动覆盖之前的值的
009. 2018-06-09
  • 打赏
  • 举报
回复
引用 2 楼 xuweiwei1860 的回复:
是不会清零的
了解了,谢谢!!
009. 2018-06-09
  • 打赏
  • 举报
回复
引用 1 楼 cp1300 的回复:
不会清零,而且也不受控制的,我之前使用定时器触发多个通道的ADC进行定时采集,并且使用DMA存储,循环模式,比如CH1,CH2,CH3,CH1,CH2。。。一直循环,如果你中间停了ADC或DMA,或定时器,都会有一定几率导致乱序(不从数组开头开始,会从数组中间,上一次停止的位置接着采集,但是通道不会记录,会从序列中第一个通道开始),不管我是复位ADC定时器DMA还是别的都不能解决,后面我只能开了,永远不关闭,就不会乱序。传输完成后如果你设置的是循环模式就会不停循环,如果你没有采集完成4000次关闭了很有可能会从数组中间存储,如果每次都是4000个采集完了,重新启动,那么会从数组开头进行存储。
明白了!谢谢!!
fly 100% 2018-06-07
  • 打赏
  • 举报
回复
是不会清零的
cp1300 2018-06-06
  • 打赏
  • 举报
回复
不会清零,而且也不受控制的,我之前使用定时器触发多个通道的ADC进行定时采集,并且使用DMA存储,循环模式,比如CH1,CH2,CH3,CH1,CH2。。。一直循环,如果你中间停了ADC或DMA,或定时器,都会有一定几率导致乱序(不从数组开头开始,会从数组中间,上一次停止的位置接着采集,但是通道不会记录,会从序列中第一个通道开始),不管我是复位ADC定时器DMA还是别的都不能解决,后面我只能开了,永远不关闭,就不会乱序。传输完成后如果你设置的是循环模式就会不停循环,如果你没有采集完成4000次关闭了很有可能会从数组中间存储,如果每次都是4000个采集完了,重新启动,那么会从数组开头进行存储。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧