基于STM32F103系列的TIM_PWM定时器笔记

  1. TIM定时器

TIM定时器是一个16位的计数器,它主要用到4个寄存器:计数器寄存器(TIMx_CNT)、自动重装载寄存器(TIMx_ARR)、预分频寄存器(TIMx_PSC)、重复计数寄存器(TIMx_RCR)一般很少用这个寄存器。
TIMx_PSC寄存器和TIMx_CRx控制寄存器都带有缓冲器,因此可以在任意时刻通过修改它的值改变从而当前定时器的频率或占空比。
TIM相关寄存器
定时器的中断时间计算:(1+psc(预分频值))*(1+arr(自动装载值))/TCK(系统时钟源)
单位:S/秒

T = (1+psc)/TCK 预分频器计数一次的周期

T = (1+psc(预分频值))*(1+arr(自动装载值))/TCK(系统时钟源) =>定时器溢出事件周期(触发中断的周期)

F = 1/T = TCK/(1+psc)*(1+arr) =>定时器的频率

  1. PWM

在这里插入图片描述
设置PWM的通道输出主要是通过设置TIMx_CCMR(捕获/比较模式寄存器)和TIMx_CCER(捕获/比较使能寄存器),当配置高级定时器的PWM时需要额外增加配置TIMx_BDTR(刹车和死区寄存器)。
PWM两种模式:在这里插入图片描述
配置高级定时器的两路死区互补的PWM输出如下图所示:
在这里插入图片描述
通用定时器PWM配置步骤:
1、配置TIMx_ARR自动重装载寄存器的ARR位(设置重装载值0-65535)
2、配置TIMx_PSC预分频器寄存器的PSC位(设置预分频值0-65535)
3、配置TIMx_CCMR捕获/比较模式寄存器的OCxM位(设置PWM模式1或PWM模式 2)
4、配置TIMx_CCMR捕获/比较模式寄存器的OCxPE位(写0禁止TIMx_CCR1寄存器的 预装载功能,可随时写入TIMx_CCR1寄存器并立即起作用)
5、配置TIMx_CCER捕获/比较使能寄存器的CCxE位(通道输出使能:0禁止使能,1 使能)
6、配置TIMx_CCER捕获/比较使能寄存器的CCxP位(通道输出极性:0高电平有效,1 低电平有效)
7、配置TIMx_CR1控制寄存器的ARPE位(自动装载预装载:0没有缓冲器,1有缓冲 器)
8、配置TIMx_CR1控制寄存器的CEN位(使能计数器:0禁止使能,1使能)

计时器计数模式:
1、向上计数(从0开始递增计数到TIMx_ARR值时产生溢出事件)
2、向下计数(从TIMx_ARR值开始递减计数到0时产生溢出事件)
3、中央对齐模式(向上/向下交替计数),一般是两个通道互补时才设置此模式

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值