2026-05-03 12:24 AM
The board I am using is NUCLEO-H7S3 and I have encountered the following issues
I want to perform continuous and large data sampling using ADC+DMA, but when the collected value reaches 10000, the subsequent values become 0. When I modify the number of collected values to 50000, it stops at 17231 and the subsequent values remain 0. At this point, I am connecting the ADC pin to the 3.3V on the board. I'm not sure where the settings went wrong, please help me.
Thank you.
Solved! Go to Solution.
2026-05-09 6:20 AM
Super and for real use continuos big buffer your idea with starting new DMA is bad. HAL is slow for this and samples is lost. Normal way is leave circular DMA in store little buff and on half and full complete calbacks run mem2mem DMA to target buffer... Here you can address incerement and no lost sample ....
2026-05-10 1:56 PM
I havent understood
2026-05-12 12:27 AM
Simply: you should use cicular mode . All these problems solved then.
As i said in my first post...
2026-05-12 8:12 AM
Your plan was 200000 samples store.
1. Start 1000 samples circular DMA (enable half and full complete callbacks)
2. On Half complete start normal DMA 500 samples form buff1 to buff2 M2M.
3. On M2M complete full increment buff2 index for next
4. On Full complete start normal DMA 501-999 sample from buff1 to buff2 M2M.
5. DMA repeat it self neverending.
Ofcourse on 200000 you start back from 0
Ofcourse M2M must be configured to lower priority and higher speed as circular DMA.