STM32F303K8主从定时器配置异常:从定时器PWM占空比无法控制
STM32F303主从定时器PWM配置问题
摘要
在STM32F303K8的主从定时器配置中,无法控制从定时器TIM3生成的PWM占空比。
需求目标
实现两个定时器同步启动:
- 主定时器TIM1:生成可变占空比的PWM,基础频率12.5kHz
- 从定时器TIM3:输出窄脉冲,基础频率1kHz
问题现象
定时器同步启动功能正常,但无论修改TIM3的周期和脉冲宽度参数,其占空比始终与TIM1一致为50%,基础频率也和TIM1相同,该现象已通过示波器验证。
测试背景
基于HAL库在Nucleo F303开发板编写测试程序,目的是验证不同基础频率和占空比的定时器同步启动方案,最终将移植至G473芯片。
假设
- 若F303上通过HAL驱动配置正确,该方案可直接移植至G473;
- 若两个定时器基础频率相同,因时钟均源自系统时钟,可永久保持同步。
待解决问题
a) 以下CubeMX配置中是否存在导致上述现象的错误?
b) 能否验证或否定上述第二个假设?
配置与代码
CubeMX配置截图
- 引脚配置
- 示波器波形(蓝色:TIM1通道4输出;黄色:TIM3通道1输出,TIM3随TIM1首次溢出启动)
- TIM1通用配置
- TIM1通道配置
- TIM1 PWM配置
- TIM3通用配置
- TIM3 PWM配置
- TIM3占空比配置
测试代码
程序启动定时器后进入空循环,TIM1通道4中断用于切换Nucleo板LED以指示程序运行:
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_Delay(100); HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1); HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_4); // start Timer 1 Ch 4 with Interrupt
内容的提问来源于stack exchange,提问作者Chris_B
相关产品推荐
相关产品推荐

