STM32 - 如何在一定的 PWM ON 时间后触发中断?

STM32 - How to trigger interrupt after a certain PWM ON time?

我是 ARM MCU (STM32F411) 的新手,我一直在尝试使用 STM 的 HAL 库和 STM32Cube 来了解外围设备。

我已经配置了我的开发板以使用一些外围设备:

现在假设 PWM 的整个周期为 100 ms,占空比为 50%(50 ms PWM打开和 50 ms PWM 关闭)。

我想在 PWM 开启一定时间后触发中断,比如说 50%。

因此,我想 运行 在 25 毫秒时中断,以便使用 ADC 对其模拟输入进行采样。

你对我如何实现这种中断有什么建议吗?

预先感谢您的帮助!

由于STM32F411的ADC用于常规模式(不是注入模式)并且四个通道中只有三个通道用于在定时器3上产生PWM,第四个通道可用于触发ADC。

因此定时器3配置如下:

  • CH1用于输出比较模式0 (TIM3->CCMR1.OC1M = 0)
  • CH2, CH3, CH4 用于 PWM 输出

因此 TIM3->CCR1 加载到一个值,给出 25% 的占空比,然后它将生成 TIM3_CH1 事件,可用于触发 ADC 启动-在 TIM3 时基的 25% 处进行转换。