3

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

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

  • 定时器 2用于以特定频率运行中断

  • 定时器 3用于在它的 3 个通道上运行 PWM。

  • 具有 4 个通道的ADC,进入 DMA 模式,用于读取一些模拟输入。

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

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

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

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

预先感谢您的帮助!

4

1 回答 1

3

由于 STM32F411 的 ADC 用于常规模式(注入模式),并且四个通道中只有三个用于在 Timer 3 上生成 PWM,因此第四个通道可用于触发 ADC。

因此定时器 3 配置如下:

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

因此,将 TIM3->CCR1加载到提供 25% 占空比的值,然后它将生成 TIM3_CH1 事件,可用于在 TIM3 时基的 25% 处触发 ADC 转换开始。

于 2016-10-02T10:58:16.480 回答