在STM32 HAL库中,DMA传输完成中断(TC)和半传输中断(HT)由DMA控制器根据NDTR计数自动触发:当传输过半时置位HTIF,全部完成时置位TCIF。典型配合用法是双缓冲/乒乓处理:在HAL_DMA_RegisterCallback注册XferHalfCpltCallback和XferCpltCallback,HT回调中处理前半段数据,TC回调中处理后半段并重启DMA(循环模式下自动重载)。注意回调在中断上下文执行,应尽量短,只做标志置位或拷贝,耗时处理放主循环。常见误触发排查:1)检查是否误开了HT中断但未实现回调,导致频繁进中断;2)确认NDTR初值与缓冲区长度一致,长度过小(如1~2字节)时HT与TC几乎同时触发;3)循环模式下TC后NDTR重载,若在回调中再次调用HAL_DMA_Start会重复启动导致计数错乱;4)外设请求与DMA通道映射错误或FIFO/突发配置不当会引起传输异常;5)用__HAL_DMA_GET_FLAG和__HAL_DMA_CLEAR_FLAG核对标志位,确认中断源,避免共用中断向量时误判。