微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果禁用 DMAContinuousRequests,ADC 是否会在每次完成转换时自动触发 DMA 请求? 手册是这样说的:我想做什么我的想法回到问题

如何解决如果禁用 DMAContinuousRequests,ADC 是否会在每次完成转换时自动触发 DMA 请求? 手册是这样说的:我想做什么我的想法回到问题

  1. 如果我禁用 DMAContinuousRequests,ADC 是否会自动触发 DMA 每次完成转换时请求?
  2. 如果我启用 DMAContinousRequests,DMA 会怎样 如果没有新的,则多次传输 adc 的样本 之间的转换?

手册是这样说的:

"[...] 此参数指定 DMA 请求是在单次模式下执行(达到转换次数时 DMA 传输停止)还是在连续模式下执行(DMA 传输无限制,无论转换次数如何)。 "

我想做什么

我想观察超过阈值的边缘的输入。 如果我检测到一个,我想通过 DMA 以 Y 个样本/秒的采样率将下一个 X 个样本保存到内存中。

(例如:X = 64 和 Y = 10k)

我的想法

  1. 设置模拟看门狗
  2. 当超过阈值时,使用回调将 ADC 设置为 DMA 模式并使用计时器触发它(禁用连续转换模式和禁用 DMAContinousRequests)
  3. X 个样本后切换回看门狗模式(DMA 缓冲区已满)

回到问题

我的连续转换模式和 DMA 连续请求设置是否适合这个目的?

解决方法

连续模式意味着它在转换每个启用的通道后,再次从第一个开始,而不是停止。

无论哪种方式,都要求 DMA 仅在准备好时传输数据。

[编辑新问题]

当我阅读手册时,ADC 只有两种 DMA 模式:在连续模式下它将永远存在。在非连续模式下,它只会转换每个启用的通道一次。

如果您想多次但不是永远读取同一个通道,那么您需要先启用连续 DMA 模式,然后在将来的某个时候将其关闭。可能 DMA 完成中断将适用于此。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?