问题发生的背景
某客户使用 STM32G431 的双 ADC 注入组同步采样,两个 ADC 各采集两个注入组通道,在选择独立模式 independent mode 时是 ok 的,但是配置为仅注入组同步模式 Dualinjected simultaneous mode only 后,只有 ADC1(主)会触发采样,ADC2(从)不会触发,客户想了解背后的原因会是什么?
问题的复现
基于 NUCLEO-G431RB 开发板(版本号 C04),引脚分配如下,ADC1 采集注入组通道ADC1_IN9 和 ADC1_IN1,而 ADC2 采集注入组 ADC2_IN17 和 ADC2_IN13,引脚PC10~PC12 仅用于测试验证的目的,通过示波器上 IO 翻转验证设计初衷。
问题的解决
通过编译器查看 ADC1 与 ADC2 的寄存器,会发现是 ADC2 的中断使能 JEOSIE 位被清除了,是哪里清除的呢?进一步调试发现,被底层驱动库。
阅读全文