Я использую AD C с DMA (STM32F4, ide STM32CubeIDE), и я думаю, что понимаю, как это работает, но все еще имею одну дилемму. Насколько я понимаю, MCU вызывается только после завершения передачи DMA, в основном MCU go в эту функцию, когда DMA AD C завершено
void HAL_ADC_ConvCpltCallback (ADC_HandleTypeDef * had c)
Это правильно?
Так что, если это правда, у меня следующая дилемма: например, adc_clock 10 МГц, время выборки 480 adc_cycles, 12-битное ad c разрешение. adc_sample_period = 1/10 МГц * (480 + 12 + 3) = 49,5 мкс. Это означает, что MCU будет go в HAL_ADC_ConvCpltCallback () каждые 49,5 мкс ??? На мой взгляд, это сложно, особенно в больших проектах. У кого-нибудь была идея, как решить эту «проблему»? Я хочу читать результаты AD C, например, каждые 1 мс, но также хочу внедрить DMA в AD C. Любая идея приветствуется