【发布时间】:2021-06-20 03:46:43
【问题描述】:
- 如果我禁用 DMAContinuousRequests,ADC 是否会自动触发 DMA 每次完成转换时请求?
- 如果我启用 DMAContinousRequests,DMA 会怎样? 如果没有新的,则多次传输 adc 的样本 之间的转换?
手册是这么说的:
"[...] 此参数指定 DMA 请求是以单次模式执行(达到转换次数时 DMA 传输停止)还是以连续模式执行(DMA 传输不受限制,无论转换次数如何)。 "
我想做什么
我想查看输入中是否存在超过阈值的边。 如果我检测到一个,我想通过 DMA 以 Y 个样本/秒的采样率将下一个 X 样本保存到内存中。
(例如:X = 64 和 Y = 10k)
我的想法
- 设置模拟看门狗
- 当超过阈值时,使用回调将 ADC 设置为 DMA 模式并使用计时器触发它(禁用连续转换模式和禁用 DMAContinousRequests)
- X 次采样后切换回看门狗模式(DMA 缓冲区已满)
回到问题
我的连续转换模式和 DMA 连续请求设置是否正确?
【问题讨论】: