When working on a small project, I used ADC1 dual channels to collect data, non-continuous loops, and dma transfer data, but the acquisition results were never refreshed.
Later it was discovered that it was a DMA problem. . .
That is, in the penultimate paragraph, when dma is in acyclic mode, you need to close DMA and rewrite the value of the CNDTRx register.