OpenEdv-开源电子网

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

dma接收模式,是否每次中断都要重新设置的目标地址?

[复制链接]

2

主题

13

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-10-31
在线时间
6 小时
发表于 2016-10-31 17:00:07 | 显示全部楼层 |阅读模式
我是在做usart的DMA,空闲中断+DMA接收,目的地址只在初始化中设置了一次,其他地方没有设置,结果第二次收到的数就在存储器中接着存储了。
比如我自己定义r_buff[200],第一次收到“123456”,清空的情况下,第二次收到的是"000000123456"


问题:在dma接收模式下,是不是在中断里需要重新设置目的地址?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2016-10-31 18:35:06 | 显示全部楼层
不用重設阿...我只重設了NDTR 目前正常的
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-10-31
在线时间
6 小时
 楼主| 发表于 2016-11-1 11:25:11 | 显示全部楼层
我的程序在中断程序中,必须重新初始化DMA,才能正确接收,否则就有下面两种情况:

1.能接收到数,但是数据储存的位置不太对,比如我自己定义r_buff[200],第一次收到“123456”,清空的情况下,第二次收到的是"000000123456"

2.DMA第二次没有把数据从外设(就是串口DR寄存器)搬移到存储器(就是自己定义的r_buff数组)。

有谁遇到这样的情况,帮忙解释下原因
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-3-1 06:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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