2025-07-14 9:15 AM
Hello everyone,
I’m working with an STM32H743VIHX and CubeMX 6.13.0-RC5, and I’m trying to capture a square-wave clock on PE9 (mapped to TIM1_CH1) so that each rising edge:
Increments the TIM1 counter (External Clock Mode 1 via TI1FP1)
Fires a DMA transfer from GPIOE->IDR into a circular buffer
Invokes my HAL_DMA_RxHalfCpltCallback() / HAL_DMA_RxCpltCallback()
Even though I can see the TIM1 counter increment (and even wrap around), my DMA callbacks never get called.
Here’s what I’ve set up:
PE9 → AF1 → TIM1_CH1
Slave Mode
Slave Mode = External Clock Mode 1
Trigger = TI1FP1
Polarity = Rising
Channel 1
ICSelection = Direct TI1
ICPolarity = Rising
Filter = 0
DMA1_Stream1 is used for TIM1_CH1
NVIC: DMA1_Stream1_IRQn enabled
Has anyone successfully used TIM1_CH1 → DMA1_Stream1 on an STM32H7?
I’ll attach my full main.cand stm32h7xx_hal_msp.c, files below. Any help would be greatly appreciated!
Thank you in advance for your insights.
2025-07-14 10:13 AM - edited 2025-07-14 10:14 AM
Ensure buffer is somewhere that DMA can access.
When code fails to behave as expected, debug it and examine the state handles for evidence of errors. Implement error callbacks.