1.19 Cubemx_STM32F4 TIM(五)---- 总结

一、寄存器总结:

预分频寄存器16bit(TIMx_PSC)
计数器时钟频率CK_CNT=fck_psc/(PSC[15:0]+1)

自动重装载寄存器(TIMx_ARR)
重复计数器寄存器 (TIMx_RCR)
向上/向下自动装载计数器(TIMx_CNT)
控制寄存器 1(TIMx_CR1)
从模式控制寄存器 (TIMx_SMCR)
DMA/中断使能寄存器(TIMx_DIER)
状态寄存器(TIMx_SR)
事件生成寄存器 (TIMx_EGR)

捕获/比较模式寄存器1 (TIMx_CCMR1)
捕获/比较使能寄存器1 (TIMx_CCER1)
捕获/比较寄存器 1 (TIMx_CCR1)

全传输 DMA 地址 (TIMx_DMAR)

二、中断回调函数总结:

1)//在定时器计数值与自动重装载寄存器相等时,就会调用该函数 即: TIMx_CNT = TIMx_ARR
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);//更新中断

2)//在定时器计数值与捕获比较寄存器值相等时发送中断,就会调用该函数 即:TIMx_CNT = TIMx_CCR1
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);//输出比较

3)//有输入捕获信号(上升沿/下降沿)
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);//输入捕获

4)void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);//触发中断

三、输出比较各模式:

1)TIM_OCMODE_TIMING TIM输出比较时间模式
冻结––输出比较寄存器 TIMx_CCR1 与计数器 TIMx_CNT 进行比较不会对输出造成
任何影响。(该模式用于生成时基)

2)TIM_OCMode_Active TIM输出比较主动模式
将通道 1 设置为匹配时输出有效电平。当计数器 TIMx_CNT 与捕获/ 比较寄存器 1
(TIMx_CCR1) 匹配时,OC1REF 信号强制变为高电平

3)TIM_OCMode_Inactive TIM输出比较非主动模式
将通道 1 设置为匹配时输出无效电平。当计数器 TIMx_CNT 与捕获/ 比较寄存器 1
(TIMx_CCR1) 匹配时,OC1REF 信号强制变为低电平。

4)TIM_OCMode_Toggle TIM输出比较触发模式
翻转––TIMx_CNT=TIMx_CCR1 时,OC1REF 发生翻转。

5)TIM_OCMODE_FORCED_ACTIVE
:强制变为有效电平––OC1REF 强制变为高电平

6)TIM_OCMODE_FORCED_INACTIVE
强制变为无效电平––OC1REF 强制变为低电平。

7)TIM_OCMode_PWM1 TIM脉冲宽度调制模式1
–在递增计数模式下,只要 TIMx_CNT<TIMx_CCR1,通道 1 便为有
效状态,否则为无效状态。在递减计数模式下,只要 TIMx_CNT>TIMx_CCR1,通道 1 便为
无效状态(OC1REF=“0”),否则为有效状态(OC1REF=“1”)

8)TIM_OCMode_PWM2 TIM脉冲宽度调制模式2
PWM 模式 2––在递增计数模式下,只要 TIMx_CNT<TIMx_CCR1,通道 1 便为无
效状态,否则为有效状态。在递减计数模式下,只要 TIMx_CNT>TIMx_CCR1,通道 1 便为
有效状态,否则为无效状态

四、STM32输出比较模式和PWM模式对比

1).两者关系:
其实完全可以理解为PWM模式为输出比较模式的特殊形式,pwm模式在对应定时器上的四个通道产生的频率是同步的(即相同的),而输出比较模式在四个通道可以产生的频率不同。
2).pwm很多是周期固定改变占空比来应用的,当然也有改变频率的,改变占空比修改的是CCR1寄存器,而改变频率则是arr分频器。
3).STM32含有影子寄存器(即起实际作用的寄存器)有TIMx_ARR自动重装载寄存器和TIMx_CCR捕获比较寄存器。ARR寄存器是用来配置计数器溢出周期(也就是计数器计数最大值,比如定时器使用时周期),也就是定时器定时周期或者作为pwm输出时的周期/频率,而TIMx_CCR捕获比较寄存器则是在作输出时作为计数器响应值,也就是pwm时改变占空比(波形)时使用的。两者应用不同。
实际上我们的配置占空比的计算就是(RCC+1)/(ARR+1) 或者(ARR-RCC)/(ARR+1),如果我们在在固定频率下可以更多的改变占空比,那么就psc分频值小些,arr值大些即可

4).输出比较或者pwm模式下,端口输出OCx和OCxREF关系:
参见手册结构图和TIMx_CCMR1中OCxM位,OCxM位决定OCxREF输出,而OCx输出由OCxREF有效时OCx也输出有效,至于有效电平高低,则由CCxP决定了
以OC1M为例:其定义的是OC1REF的输出,OC1REF有效是定死的为高有效:
PWM1模式,假如当前OC1REF对应无效电平(OC1REF==0),那么OC1也为无效电平。
当CC1P为0,即OC1为高有效,低无效,那么此时OC1输出就是无效0低电平
当CC1P为1,即OC1为低有效,高无效,那么此时OC1输出就是无效1高电平
简而言之就是:OC1M指的是OC1REF参考电平值,其无效(0)对应OC1时的无效,其有效(1)对应OC1的有效

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值