极客秀
搜索

STM32中定时器的CubeMX配置(1)——基本参数及PWM模式

1

前言

前几期内容中我们都采用了STM32的定时器功能,而再早之前也有一期定时器的理论介绍。因此本期我们介绍基于CubeMX的STM32定时器的使用。

2

CubeMX

在CubeMX中配置定时器首先要关注的是功能配置。Slave
Mode使定时器(定时器通道)可以依赖另一个外部信号作为触发源,而不是独立运行。(不做过多介绍)。

Clock Source也就是时钟源,它决定了定时器计数时钟,我们通常会使用Internal Clock也就是内部时钟源。

从时钟树中我们可以看到,定时器的时钟由APB2TimerClocks提供,该时钟源来自HCLK主时钟仅分频获得。在正常情况下和HCLK保持一致。

Channel用于配置通道特殊功能大体有四类:

** 输入捕获,输出比较模式,PWM模式以及强制输出模式 ** 。每一个Channel都是对应着具体引脚的。

例如PA1对应着TIM2的Channel2以及TIM5的Channel2,当我们配置TIM2的Channel2为PWM输出时,实际代表着
PA1输出PWM

当我们的Clock Source选择好之后(通常选择内部时钟)接着就是进入参数配置。

** 首当其冲的分频系数 **
:Prescaler。这个参数字面理解就是决定对定时器时钟分频。计数频率计算公式为:TimerClock/(Prescaler+1)。

例如当我的TimerClock设置为170MHZ时,PRC设置为170-1,这样子根据公式可以得到计数频率为1MHZ即每秒钟计数值加1M次(1us加一次)。

其次是计数器周期 :Counter Period。这个参数决定着定时器单次周期的计数最大值,当计数超出这个值会出现“ ** 溢出 **
”。溢出则可以发生中断,触发中断回调函数等等~

因此定时器的一个周期可以计算为:

TimerClock/(Prescaler+1)/(Counter Period)
。假设我们的分频系数设置为170-1,主频为170MHZ,计数器周期设置为1000。这样子定时器的每次溢出时间就是1ms,就可以实现1ms定时的功能了。

Trigger
Output触发输出也是定时器非常关键的一个功能。它用于输出外部触发信号,用来同步其他外部设备或触发其他定时器。例如我们的DMA什么时候搬运数据,触发源可以来自定时器的这部分,这样子我们就可以实现定时搬运数据,实现定采样率的ADC采集,或者定周期的DAC输出。

最后别忘记了开启定时器中断,没有这些中断,就无法调用定时器中断回调函数。

3

PWM模式

我们可以看到,定时器总共有四种模式,其实总结就是四种输出模式。

PWM Genneration No
Output顾名思义就是开启PWM但是不具体输出,没有输出波形,但是内部保留PWM的功能,它主要是作为一些内部用于其他外设的触发信号功能,这里不做过多介绍。

PWM Genneration CH1即正常的PWM输出,由具体某个引脚输出PWM波形。

CH1N的N应该是反向通道的意思,它会 ** 输出和CH1极性相反 **
的波形。需要注意的是,前面我们说过某个Channel通道都对应着具体的引脚,实际上CH1和CH1N是两个不同的引脚。

当我们开启PWM Generation CH1 CH1N的时候,就会同时开启这两个通道,它们会输出一对相反的波形,这个特性常常被应用于全桥驱动上。

防止某对MOS管被同时导通,用这种方式可以在防 ** 止同时输出高电平或者低电平 ** 。

当我们开启PWM模式后,需要了解的最重要的参数就是Pulse(脉冲),这个值决定着PWM的占空比通常我会叫做比较值(CCR)。在PWMmode1情况下假如我们的定时器周期值设置为1000。当
** 计数值(CNT)小于CCR时,会根据CH Polarity(如果是High)就会输出高电平 **
。当CNT>CCR时就会输出低电平。到达1000时就会重新计数,这样子就完成了一个周期PWM波的输出。

所以会把CCR认为是一个比较值,而不是所谓的占空比,它的值决定了占空比,但是却不是占空比本身。占空比的计算:CCR/Counter
Period(ARR+1)。(依据设置模式改变)。

4

下期介绍

篇幅过长,下期我们再接着介绍定时器剩下的两种功能。

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容