Я использую ADC с DMA (STM32F4, ide STM32CubeIDE), и я думаю, что понимаю, как это работает, но все еще имею одну дилемму. Насколько я понимаю, MCU вызывается только после завершения передачи DMA, в основном MCU переходит в эту функцию, когда DMA ADC завершается.
void HAL_ADC_ConvCpltCallback (ADC_HandleTypeDef * hadc)
Это правильно?
Итак, если это правда, у меня возникает следующая дилемма: например, adc_clock составляет 10 МГц, время выборки составляет 480 adc_cycles, разрешение ADC 12 бит. adc_sample_period = 1/10 МГц * (480 + 12 + 3) = 49,5 мкс. Это означает, что MCU будет переходить в HAL_ADC_ConvCpltCallback () каждые 49,5 мкс ??? На мой взгляд, это сложно, особенно в больших проектах. Кто-нибудь знал, как решить эту "проблему"? Я хочу читать результаты АЦП, например, каждые 1 мс, но также хочу реализовать DMA в АЦП. Любая идея приветствуется