打印
[应用相关]

如何在 DMA 完成回调中处理 ADC 数据

[复制链接]
302|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
初级工程渣|  楼主 | 2024-7-26 23:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
dc, DMA, DM, ADC, AD
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 后立即检查标志。这样可以避免不必要的错误,并使采样过程更加可靠。

使用特权

评论回复
沙发
4c1l| | 2024-7-27 11:45 | 只看该作者
在回调函数中处理 DMA 完成标志,可以确保在数据传输完成时执行相关操作,而不是在启动 DMA 后立即检查标志

使用特权

评论回复
板凳
LOVEEVER| | 2024-7-28 13:47 | 只看该作者
楼主这个有详细的案例过程嘛?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

676

帖子

0

粉丝