请问STM32的ADC,对于指定通道如何在转换达到10次后再通过DMA将值传给内存。

-网上的方法是对于ADC每次转换完成就通过DMA幅值给内存,但是我希望ADC在转换10次之后再通过DMA赋值给内存,这样AD值就比较稳定,可减小掉单次转换时的误差。-但是... -网上的方法是对于ADC每次转换完成就通过DMA幅值给内存,但是我希望ADC在转换10次之后再通过DMA赋值给内存,这样AD值就比较稳定,可减小掉单次转换时的误差。
-但是目前不知道怎么指定10次后再调用DMA进行赋值传输
-以前的方法都是在ADC中断里,采用软件判断转换完成10次,并代码操作赋给内存,这次希望用DMA方式。
展开
 我来答
shang_ai_tao
2014-05-24
知道答主
回答量:13
采纳率:0%
帮助的人:19.7万
展开全部
同样的道理啊,可以在ADC中断里面,软件判断转换完成10次之后(存储转换值),然后使能DMA,再判断传输完成的标志位是否已经传输完成,然后失能DMA,这样就可以满足的你的需求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WSLKY001
2014-05-24 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:112万
展开全部
很别扭的用法。直接dma传送10次到一个数组,再数字滤波不是效果更好吗?没有转换10次AD值就会比较稳定的感觉。
追问
这个建议很好,不过假设是传10次到一个ADC_DATA[10]中,那这个对ADC_DATA[10]进行平均的计算是在DMA的传输完成中断中进行?还是在需要调用ADC值之前的代码中进行?
追答
根据你的情况决定。对不需要严格采样时间的模拟量,可以dma设成循环模式,不停的刷新数组的值,反正这个不占cpu。在需要的时候或者固定间隔计算一下结果就行了。其实大部分模拟量都是这种应用。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式