STM32 ADC #4. How to Read ADC Multiple Channels || DMA Circular Mode

Поділитися
Вставка
  • Опубліковано 7 лют 2025
  • Purchase the Products shown in this video from :: controllerstec...
    ________________________________________________________________________________________
    Watch PART3 :::: • STM32 ADC #3. How to u...
    Watch PART5 :::: • STM32 ADC #5. How to R...
    Checkout STM32 ADC Series :::: • STM32 ADC Series
    Checkout more STM32 Videos :::: • STM32 Tutorials
    To download the code and for more details, goto :::: controllerstec...
    ________________________________________________________________________________________
    ****** SUPPORT US BY DONATING*****
    paypal.me/cont...
    ******Join the Membership******
    / @controllerstech
    Join the Discord Server / discord
    Join the Telegram Group t.me/controlle...
    Follow me on Instagram / controllerstech
    For more info, visit www.controller...

КОМЕНТАРІ • 3

  • @hilal332
    @hilal332 2 місяці тому +2

    I followed the tutorial using stm32h7 nucleo board. But the DMA seems to crash the other tasks, i tried managing the interrupt priority and memory allocations(along with the MPU with other tasks) but nothing seems to work. Do you have any solutions about using the adc with dma and freertos to work properly with multiple tasks?

  • @ed.peguillan.3
    @ed.peguillan.3 2 місяці тому

    Excellent video as always, thanks!
    For your circular buffer in memory, how can you be sure which buffer array element maps to which ADC channel? Suppose you are continuously scanning 4 ADC channels at 12-bits per sample, and have the DMA depositing them circularly into a 4 element long 16-bit array; In this case, it seems like a reasonable assumption that `buffer[0]` always maps to `ADC[highest_priority]`, and so on. But what if your circular buffer was 5 elements long, and you were only scanning 4 channels?
    I guess a better question might be, "how can one ensure that `buffer[N]` element came from ADC channel M"?
    Thanks