STM32 - 如何在一定的 PWM ON 时间后触发中断?
STM32 - How to trigger interrupt after a certain PWM ON time?
我是 ARM MCU (STM32F411) 的新手,我一直在尝试使用 STM 的 HAL 库和 STM32Cube 来了解外围设备。
我已经配置了我的开发板以使用一些外围设备:
定时器 2 用于 运行 以特定频率
中断
定时器 3 用于在它的 3 个通道上 运行ning PWM。
ADC 有 4 个通道,进入 DMA 模式,用于读取一些模拟输入。
现在假设 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% 处进行转换。
我是 ARM MCU (STM32F411) 的新手,我一直在尝试使用 STM 的 HAL 库和 STM32Cube 来了解外围设备。
我已经配置了我的开发板以使用一些外围设备:
定时器 2 用于 运行 以特定频率
中断
定时器 3 用于在它的 3 个通道上 运行ning PWM。
ADC 有 4 个通道,进入 DMA 模式,用于读取一些模拟输入。
现在假设 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% 处进行转换。