现在有3个AD通道,隔一段时间就要刷新一次,但读3个通道的时间间隔要很短。我的想法是把这3个通道设置为注入模式。然后设置ADON位,使它们连续的采样,并使用扫描模式。这样我什么时候想读,就直接读相关的注入数据寄存器就行了。参考手册也说这样做可以。
“扫描模式可通过设置ADC_CR1寄存器的SCAN位来选择。一旦这个位被设置,ADC扫描所有被ADC_SQRX寄存器(对规则通道)或ADC_JSQR(对注入通道)选中的所有通道。在每个组的每个通道上执行单次转换。在每个转换结束时,同一组的下一个通道被自动转换。如果设置了CONT位,转换不会在选择组的最后一个通道上停止,而是再次从选择组的第一个通道继续转换。 如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。而注入通道转换的数据总是存储在ADC_JDRx寄存器中”。“在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。此模式可通过外部触发启动或通过设置ADC_CR2寄存器上的ADON位启动,此时CONT位是1。”
但我实际上做的时候用扫描模式+CONT位+ADON 注入通道根本没触发。是不是注入通道必须外部触发? |