void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) {
if (hadc->Instance == ADC1) {
// DMA 传输完成后的处理代码
// 例如,处理 ADC 数据
}
}
// 初始化函数中启动 DMA
void StartADC_DMA(void) {
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)gs_adwAdcSampleValue, FILTERLENGTH * ADC_CHANNEL_NUM);
}
通过在回调函数中处理 DMA 完成标志,可以确保在数据传输完成时执行相关操作,而不是在启动 DMA 后立即检查标志。这样可以避免不必要的错误,并使采样过程更加可靠。
|