定时器与PWM

定时器的分类

  • 基本定时器: 用于简单计时或延迟的定时器。(TIM6,7)

  • 通用定时器: 通常具有多个定时/计数通道,并且可以用于多种用途,例如产生 PWM 脉冲捕获外部事件、测量时间间隔,产生输出波形等。通用定时器具有灵活的配置选项,使其适用于不同的应用需求。

  • 高级定时器: 高级定时器是相对于基本定时器和通用定时器而言的,它通常具有更复杂的功能和更高级的特性。高级定时器可以支持更多的通道和更精确的时间测量,以及更复杂的计时模式和触发条件。高级定时器通常用于需要较高精度和复杂计时操作的应用,比如音频处理、高速数据采集和控制系统等。

定时器的组成

时钟源--------分频器----------计数器-----------------重装载值

STM32的通用定时器 TIM2,3,4,5

时钟源: 内部时钟,外部时钟

预分频器:1——65536

计数器:16位

重装载值:16位

计数方向:向上,向下

在通用定时器中,预分频使能的话下次起作用,没有使能的话立即起作用!

应用:使用通用定时器实现US/ms的延时

步骤:

1,选用定时器通道TIM2,并使能时钟

2,配置TIM2,设置结构体中的项

时钟分割-----------用于输入捕获-----可以不配置

计数方向-----------向上,向下计数

重装载值-----------减1

预分频 ------------减1

重复计数器---------用于TIM1,TIM8------可以不配置

3, 开中断,使能更新中断

4,配置NVIC,每个中断都是由NVIC管理的

注意:

重装载值减1: 重装载值(Auto-Reload Register)决定了定时器溢出的时间间隔。因为定时器计数器的范围是从0到重装载值,所以如果设置重装载值为 n,那么定时器将计数 n+1 个周期才会溢出。因此需要将重装载值减1

预分频器减1:决定了每个计数周期的时钟周期数。如果将预分频器设置为 n,那么定时器的时钟频率就会被分频为原来的 1/(n+1)。所以,为了准确计算延时,我们需要考虑到预分频器的减1操作。

应用:利用通用定时器输出PWM波

通过设置占空比的值来控制

配置过程:

1,开GPIO口的时钟,与GPIO对应的TIMX的时钟。这个对应关系可以从数据手册中查看。

2,配置GPIO为MITX的复用推挽输出

3,配置定时器: 时钟分割-----------用于输入捕获-----可以不配置

计数方向-----------向上,向下计数

重装载值-----------减1

预分频 ------------减1

重复计数器---------用于TIM1,TIM8------可以不配置

4,配置输出比较寄存器

(在time.c中--TIM_OCXInit,这个X的值对应通道,用的是定时器的那个通道,X的值就为几)

配置结构体中的项

1,选择PWM工作模式,选择根据自己决定

2,选择极性,决定高有效还是低有效

3,选择是否允许输出

4,设置比较值

............(基本不配)

在主函数中初始化配置,进行写入分频值,重装载值

设置这个PWM波对比值是需要调已经有的库函数

也是在time.c文件中 TIM_SetCompareX,这个X的值也是根据使用的那个通道来决定的!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值