我正在移植一个老旧的项目:该项目原基于 STM32H750,使用 STD HAL 库 v1.06。
我将项目迁移至 STM32H725IGK6。
项目通过 CubeIDE 编译,使用最新版 HAL 库。
ADC 配置为:ADC1 通道 3(CH3)与 ADC2 通道 5(CH5)工作在常规同步模式 ,并启用 DMA 传输。
External bypass oscillator:25MHz
ADC 时钟来源:PLL2 输出 88MHz,经 4 分频后得到 2MHz 采样率
该项目包含大量复杂数**算,最初是在 Unix 环境下创建的。
将代码移植到 CubeIDE 后,编译无报错,但我发现 HAL_ADC_IRQHandler 函数始终未被触发,不知知道原因何在?
目前已启用 ADC 和 DMA 对应的 NVIC 中断。
读取 ADC1 数据寄存器对应的 DMA 数据流是哪个?是否为DMA1 Stream 1?
试过将代码导出到IAR 开发环境中编译调试,但结果完全一致。
相关代码片段
void ADC_IRQHandler(void)
{
HAL_ADC_IRQHandler(&AdcHandle_master);
HAL_ADC_IRQHandler(&AdcHandle_slave);
}
void DMA1_Stream1_IRQHandler(void)
{
HAL_DMA_IRQHandler(AdcHandle_master.DMA_Handle); // this gets triggered
}
|
|