You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blackpill STM32F411CEU6 基于libopencm3配置TIM3输出PWM无输出问题

问题排查结果

以下是你代码中存在的错误和遗漏配置项:

  • GPIO模式配置错误(核心问题)
    你当前将PB0/PB4/PB5的模式设为了GPIO_MODE_OUTPUT(普通推挽输出模式),要让引脚连接到定时器外设实现PWM输出,必须将GPIO模式设置为复用功能模式,修改对应代码即可:
    gpio_mode_setup(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO0 | GPIO4 | GPIO5);
    
  • 定时器通道与引脚对应关系不匹配
    STM32F411系列TIM3通道和你使用的引脚对应关系如下:
    • PB4 → TIM3_CH1
    • PB5 → TIM3_CH2
    • PB0 → TIM3_CH3
      你当前代码仅开启了TIM3_CH1的PWM输出配置,只有PB4引脚会有PWM输出。若你测试的是PB0或PB5,需要对应打开TIM_OC2、TIM_OC3的输出使能与OC模式配置,取消相关注释即可。
  • 可选校验项
    确认你的APB1总线时钟频率是否为50MHz,你当前预分频参数是按照50MHz总线时钟计算的,若总线时钟频率不符只会导致PWM频率偏差,不会出现完全无输出的情况。若修改上述配置后仍无输出,可额外显式配置输出极性:
    timer_set_oc_polarity_high(TIM3, TIM_OC1);
    

内容的提问来源于stack exchange,提问作者IAMCB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:36:01