STM32F302 Adc,带有不同大小和通道的

时间:2017-06-16 23:53:21

标签: stm32

我使用的是STM32F302 QFN32,不幸的是,它只有一个ADC模块。一个通道必须在一个周期内获得大约500个采样,并且必须与PWM同步(使用定时器进行思考,这个i / o将在回调中切换,因为在读取其ADC通道时,我必须知道i / o是否为高或者低,以便根据这个值,决定价值)。此外,还有4个通道必须读取。(更多样本不像以前那样需要,8或16个样本就足够了。)但是,它只有一个ADC模块。因此,我可以这样做吗?如果有,怎么样?谢谢。

1 个答案:

答案 0 :(得分:2)

ST ADC有两种转换模式。常规和注入。

常规模式就像所有ADC一样。你可以通过软件或触发器(timer / gpio)启动它,它可以执行一次或一系列转换。结果写入共同的寄存器,DMA负责处理 注入模式是高优先级抢占转换。一旦通过软件或触发器启动注入的转换序列。 ADC在常规转换之间注入转换。作为更优先的一个。结果存储在中断的一个注入结果通道中 只有常规模式支持DMA。有关详细信息,请参阅AN4195

我建议您使用计时器触发快速通道的常规序列,使用循环DMA设置来移动数据。并使用另一个计时器来触发注入的序列。最多有4个注入通道,所以你很幸运!

显然,你可以反过来做到这一点。快速注射和慢速定期。但是你需要另一个与注入的启动触发器同步的定时器来让DMA移动数据 也就是说,如果您的采样率不允许立即处理。否则你可以使用ISR。