2017-06-16 82 views
0

我正在使用STM32F302 QFN32,不幸的是,它只有一个ADC模块。一个通道在一个周期内必须有500个采样点,并且它必须与PWM同步(使用定时器思考,并且此I/O将在回调中切换,因为在读取其ADC通道时,我必须知道I/O是否高电平或低,所以根据这个值,将决定价值)。此外,还有4个通道需要读取(更多采样不需要像以前那样,8或16个采样就足够了)。但是,它只有一个ADC模块。因此,我可以这样做吗?如果是,如何?谢谢。STM32F302 Adc用于不同大小和通道的DMA

+0

_“我正在使用STM32F302 QFN32”_ - 非常有趣,因为这个微型不是在QFN32的情况下制造的 –

+0

我提到UFQFPN就是它的情况。 –

+0

ST在完整的订单代码中有包装,您能给出完整的订单代码吗? STM32F302 ** ** XXX?我猜测一个x6x或x8x? – Jeroen3

回答

2

ST ADC有两种转换模式。定期和注入。

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

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

很明显,您可以通过其他方式来做到这一点。注射速度快,经常慢。但是您需要与注入的开始触发器同步的另一个计时器才能让DMA移动数据。
也就是说,如果你的采样率不允许立即处理。否则,你可以使用ISR。

+0

我可以同时使用这些模式吗?所以,虽然它使用DMA的常规模式,但对于其他通道,我可以同时使用注入模式吗?可能吗?或者在其他人完成之前没有人开始转换? –

+0

@GokhanSahin是的,这些模式旨在一起使用。两种模式都会启动完整的转换,因此我认为您可以使用相同的通道进行注入和定期。您必须检查手册中的脚注。 – Jeroen3

+0

谢谢你Jeroen3。它同时适用于正常和注入模式。 –

相关问题