Timer 定时器触发的DMA-AD转换,STM32F4只适用于一个

Timer 定时器触发的DMA-AD转换,STM32F4只适用于一个,timer,stm32,microcontroller,dma,adc,Timer,Stm32,Microcontroller,Dma,Adc,我正在通过nucleo-STM32F401RE板上的计时器触发DMA传输来实现a/d转换。 用于时基的TIMER2和用于调试的DMA ADC都很好。 但当我使用定时器启动AD转换时,它只工作一次,然后定时器继续工作,但不启动ADC 我找不到是否有需要清除或设置的标志。 代码如下: 计时器2(将sMasterConfig.MasterOutputTrigger从TIM_TRGO_重置更改为TIM_TRGO_更新,否则ADC永远不会启动): void MX\u TIM2\u Init(void)

我正在通过nucleo-STM32F401RE板上的计时器触发DMA传输来实现a/d转换。 用于时基的TIMER2和用于调试的DMA ADC都很好。 但当我使用定时器启动AD转换时,它只工作一次,然后定时器继续工作,但不启动ADC

我找不到是否有需要清除或设置的标志。 代码如下:

计时器2(将sMasterConfig.MasterOutputTrigger从TIM_TRGO_重置更改为TIM_TRGO_更新,否则ADC永远不会启动):

void MX\u TIM2\u Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig={0};
TIM_MasterConfigTypeDef sMasterConfig={0};
TIM_OC_InitTypeDef sConfigOC={0};
htim2.Instance=TIM2;
htim2.Init.Prescaler=100;
htim2.Init.CounterMode=TIM\u CounterMode\u UP;
htim2.Init.Period=100;
htim2.Init.ClockDivision=TIM\u ClockDivision\u DIV1;
htim2.Init.autoreloaddreload=TIM\u AUTORELOAD\u PRELOAD\u DISABLE;
sClockSourceConfig.ClockSource=TIM\u ClockSource\u INTERNAL;
sMasterConfig.MasterOutputTrigger=TIM_TRGO_UPDATE;//TIM_TRGO_RESET
sMasterConfig.MasterSlaveMode=TIM\u MasterSlaveMode\u DISABLE;
sConfigOC.OCMode=定时;
sConfigOC.Pulse=0;
sConfigOC.OCPolarity=TIM_OCPolarity_HIGH;

sConfigOC.OCFastMode=TIM\u OCFAST\u DISABLE;
这只是一个非常粗略的猜测,但是如果您将此
hadc1.Init.EOCSelection=ADC\u EOC\u SEQ\u CONV;
更改为
ADC\u EOC\u SINGLE\u CONV
,会发生什么。