OpenEdv-开源电子网

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

STM32 关于 DMA

[复制链接]

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2018-11-8 16:41:19 | 显示全部楼层 |阅读模式
1金钱
DMA
  内存到 外设

数据源是全局数组  a[32]

  需要重复发送同样的数据




  1.如果每次都给地址写好数据 然后开始DMA 重复N次都可以
dma初始化
    for (i=0;i<100;i++)
  {
      ...填充数据
   ...发送
  ...等待发送完成
  }



  2. 如果 先写好数据    然后    发送DMA -等待完成-- 再发送-再等待
  这样  实际发送的数据是空白的,只有第一次有数据。

dma初始化

    先填充数据    ...填充数据
    for (i=0;i<100;i++)
  {
       ...发送
     ...等待发送完成
  }

   这样 只有第一次DMA有数据 后面都是0

   疑问:  就算是 同样的数据 同样的长度  每发送一次都要往数据源填充一次数据吗

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2018-11-8 22:10:03 | 显示全部楼层
本帖最后由 candylife9 于 2018-11-8 22:13 编辑

不是呀,DMA又不会清空你的源数据。肯定是别的问题,短暂延时后再发送试试,DMA的速度跟不上CPU执行指令的速度,可能你后面的DMA根本就没有执行。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 23:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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