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

STM32 NUCLEO-F411RE的TIM4预分频器、自动重装值设置及80%占空比PWM配置

解决STM32 NUCLEO-F411RE控制L298N驱动电机的PWM配置问题

核心参数计算(TIM4预分频器、自动重装值、CCR1设置)

NUCLEO-F411RE的TIM4挂载在APB1总线,默认系统时钟配置下,APB1预分频为2,因此TIM4的时钟频率为84MHz(APB1时钟42MHz × 2,因APB预分频>1时定时器时钟翻倍)。

直流电机适配的PWM频率范围为1kHz~20kHz(避免低频噪音与电机抖动),这里以10kHz为例计算参数:

1. 预分频器(PSC)与自动重装寄存器(ARR)计算

PWM频率公式:

PWM频率 = TIM时钟 / [(PSC + 1) × (ARR + 1)]

代入数值推导:

10000 = 84000000 / [(PSC+1) × (ARR+1)]
→ (PSC+1) × (ARR+1) = 8400

选择PSC=83(PSC+1=84),则:

ARR+1 = 8400 / 84 = 100 → ARR=99

2. 80%占空比的CCR1值计算

占空比公式:

占空比 = (CCR1 / (ARR + 1)) × 100%

代入80%占空比:

0.8 = CCR1 / 100 → CCR1=80

配置步骤(CubeMX + 代码)

  1. CubeMX配置

    • 开启TIM4时钟,通道1设置为PWM输出模式1(向上计数时,CNT<CCR1输出高电平)
    • 设置TIM4的Prescaler=83,Counter Period=99
    • PB6配置为复用推挽输出,复用功能选择TIM4_CH1
    • PA11、PA12配置为推挽输出,默认电平按需设置
  2. 代码修改
    CCR1赋值只需在初始化阶段执行一次,无需在while循环重复操作:

    /* USER CODE BEGIN 2 */
    HAL_GPIO_WritePin(GPIOA, Dir1_Pin, GPIO_PIN_SET);   // 正转:PA11高,PA12低
    HAL_GPIO_WritePin(GPIOA, Dir2_Pin, GPIO_PIN_RESET);
    HAL_TIM_Base_Start(&htim4);
    HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
    htim4.Instance->CCR1 = 80;  // 设置80%占空比
    /* USER CODE END 2 */
    
    /* Infinite loop */
    while (1)
    {
        // 无需重复赋值CCR1
    }
    

电机仅滴答不转的排查要点

  • 共地检查:L298N的GND必须与STM32开发板GND连接,否则信号逻辑不统一
  • 电源验证:L298N的VM引脚接6V蓄电池,确保电量充足;电机接线牢固无松动
  • PWM输出检测:用示波器测量PB6引脚,确认存在10kHz、80%占空比的PWM波形
  • 电机状态确认:手动转动电机轴,排查是否存在卡死情况
  • 电平兼容性:L298N输入逻辑高电平阈值≥2.3V,STM32的3.3V输出满足要求,无需额外电平转换

内容的提问来源于stack exchange,提问作者m.unicorn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:05:15