gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:41:36 28 4
gpt4 key购买 nike

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

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

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

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

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

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

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

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

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

预先感谢您的帮助!

最佳答案

由于STM32F411的ADC是在Regular模式下使用的(不是 Injected模式),四个 channel 中只有三个 channel 用于在Timer 3上产生PWM,所以第四个 channel 可以用来触发ADC。

因此定时器 3 配置如下:

  • CH1 用于输出比较模式 0 (TIM3->CCMR1.OC1M = 0)<
  • CH2CH3CH4用于PWM输出

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

关于timer - STM32 - 如何在一定的 PWM ON 时间后触发中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39800953/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com