/
...
/
/
TIM(PWM)
Search
Try Notion
TIM(PWM)
一.理论讲解
简介
分别为基本定时器(TIM6.7)→通用定时器(TIM2-5)→高级定时器(TIM1.8)
功能为大小为 基本<通用<高级
基本定时器配置
🖼️定时器时钟挂载图
来源
PSC ARR 缓冲问题
🖼️缓冲时序图
对于预分频(PSC)和自动重装载(ARR),具有缓冲.修改其中的值不会立马应用,
只有当上一次的计数器(CNT)溢出后,下一次重新计数才会应用
时钟选择问题
TIMxCLK挂载于ABP2下且和APB2的分频系数相关
APB2挂载于 SYSCLK
若APB无分频(分频为1)→TIMxCLK也不分频
若APB有分频→TIMxCLK则在APB2分频后再倍频(x2)→通过(RCC_DCKCFGR设置默认0即为x2)
对于F4
SYSCLK最大为168M,默认APB2为4分频
根据ABP选择不同可设置最大值为168M 86M
默认为86M 高级定时器默认168M
主要寄存器
控制寄存器(TIMx_CR1 TIMx_CR2)
中断使能(TIMx_DIER)
状态(TIMx_SR)
事件产生(TIMx_EGR)
计数器(TIMx_CNT)
预分频(TIMx_PSC)
自动重装载(TIMx_ARR)
初始化设置
启用对应APB2时钟
启用定时器
BASIC_TIM_CLK_ENABLE();
Init函数
PSC ARR 值设置: 基本定时器只需(也只能)设置则两个
计数模式CounterMode: 有向上 向下 中心对齐,基本定时器只有向上模式(默认为0 无需初始化)
ClockDivision时钟分频 RepetitionCounter重复计数器: 基本定时器没有,不需要管
NVIC配置
设置优先级
设置中断调用函数
开启中断
HAL_TIM_Base_Start_IT(&TIM_TimeBaseStructure);
通用定时器
主要引入的外部引脚: 可以输入捕获和输出比较
高级定时器
针对工业电机的新功能
增加了可编程死区互补输出
重复计数器
带刹车(断路)功能
时钟选择
输入捕获
PWM模式捕获
输出比较
二.实际配置
PWM_Init
时钟初始化
PSC(2分频) ARR(5600)配置
时钟默认168M/2=86M 则有PWM频率(86M/5600=15K)
同光耦器件相一致
速度控制
通过修改Duty值来
💡速度控制为何不采用满占空比
自举电容需要时间充电