LAT1096
Local Application Tips
LAT1096 Rev 1.0 Jan. 2022
ADC 交错工作方式碰到的问题与解决方法
关键字:ADC 交错模式,中断
1. 前言
G4 中存在最多 5 ADC 转换单元,其中 ADC1/2 ADC3/4 可以工作在双路模式下
(Dual mode),双路模式的交错工作方式可以提高 ADC 的采样速率,实现采样率翻倍。客户在使
用交错工作方式时,发现了一些问题。本文将对出现的问题进行解释,并给出解决办法。
2. ADC 交错工作方式问题
关于 ADC 的交错工作方式此处不做介绍,请阅读相关文档进行了解。
2.1. 问题一
完成 ADC1/2 的双路交错工作模式的配置后,调用接口函数使 ADC1/2,如下所示。通过调
试发现 ADC2 的结果寄存器保持不变,ADC2 并未工作,只 ADC1 工作了。
LAT1096
LAT1096 - Rev 1.0 page 2/7
通过查看 HAL_ADC_Start_IT()数源码以及注释,可以看到 ADC salve 时,函数中只
是使能了 ADC 并没有启动 ADC,只有当 ADC Master 时,才会使能并同时启 ADC
所以通过以上的函数启动 ADC 工作时,正确的调用时序如下:
2.2. 问题二
交错工作方式下开启 ADC 中断(EOC 中断),使用 CubeMx 生成的默认中断服务函数,中断
务函数中包含了清除中断标识,但是运行程序后,调试发现采样值可以正常更新,但是中断工
“异常”。
在只启动 ADC1 或是只使能 ADC1 的中断的情况下,程序运行后 ADC1 将不停的进入中断。