2025-10-17 5:35 AM - edited 2025-10-17 5:55 AM
Is it possible to re-trigger HAL_TIM_DMABurst_MultiWriteStart() from software? Currently it works only once for me. Using TIM1 freq/duty-cycle:
HAL_TIM_DMABurst_MultiWriteStart(
&htim1,
TIM_DMABASE_ARR, // Base = ARR
TIM_DMA_UPDATE, // Trigger = update event
(uint32_t*)rampBurst, // Source buffer
TIM_DMABURSTLENGTH_3TRANSFERS,// ARR + RCR + CCR1
N_STEPS*3 // Number of bursts
);
__HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_UPDATE);
This produces a duty-cycle and frequency change over a certain amount of time, let's say 10ms, after the 10ms, I would like to disable the PWM output by setting the duty-cycle to 0:
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 0);
Then, I would like to re-trigger this each 100ms from software. My DMA setting is set to "Normal". The value of RCR is always 0 in the rampBurst array.