I've reread the datasheet. I do not believe the ADC is 'flushed'. The note for ADC_StopConvert() reads: "Forces the ADC to stop all conversions. If the ADC is in the middle of a conversion, the ADC will be reset and not provide a result for that partial conversion."
I understand this to mean that if the ADC was in the middle of a conversion, the partial result will be reset. Therefore, Cypress recommends you look to see if the Conversion is complete, then Stop the conversion to prevent reading the result while in the middle of a conversion.
Theoretically, you can read the ADC result without stopping the conversion of the next sample. However, the risk can be that if it is in the middle of a conversion of a > 8 bit result, one of the bytes might contain the result of the current conversion and the other byte from the previous conversion. This is called a "coherence issue". Sadly, due to various reasons, a multi-byte ADC is not atomic.
I was under the impression that the ADC needs to flush itself to prevent contamination between different sources. However, I guess that wouldn't flush the ADC data register, so I guess my question is mute.
Pursuant to the ADC question -> leaving the ADC run for any length of time could result in a current ADC data register bit being contaminated? Or does the ADC have a buffer, so the output data frame only gets updated after the internal frame fully captures a measurement? I guess I'm asking trivial questions now, so I should probably just go look it up if I'm curious.
I don't believe the ADC_DelSig has a FIFO. However, if you want to pursue it, you can create your own FIFO by assigning a DMA channel to it to dump the incoming measurements into a RAM buffer of the size of your choosing.