参考学习资料 单片机 nucleo_tutorial4.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

NUCLEO教程之四:调个光

编译:netlhx

上一讲我们介绍了定时器的基本用法:定时功能。定时器在MCU里绝对算得上是大佬级的组件,它的

功能可远不止定个时这么简单,定时在定时器里面被称为TimeBase,只不过是个基础而已。

STM32里的定时器能完成下面这些功能:

•定时,基础功能,可以精确实现延时功能

•输入脉冲测量,检测输入波形的周期,占空比

•输出脉冲,主要的应用就是生成PWM波,控制电机的好手啊

当然不是所有的定时器都有这些功能,STM32将定时器分成通用定时器、高级定时器及基本定时器,具

体功能请参考相应数据手册。

这一讲我们利用定时器的PWM功能来控制LED灯的亮度,实现LED灯亮度的无级调控。

高级定时器

在STM32的产品线中,TIM1基本都设计为高级定时器,所以本讲我们来介绍TIM1这个定时器,其

它的可以依此类推。定时器需要工作的话,它需要一个外部的时钟脉冲基准,大部分情况下,这个时钟

基准来自系统时钟分频后的APB1或APB2时钟。这个时钟奠定了定时器的工作基调。

除了基本定时器之外,普通及高级定时器都控制了不同数量的通道,这些通道可以作为输入或输出之用,

高级定时器还有3对互补的通道。每个通道都可以指定不同的参数,以实现不同的功能。

前面介绍过,定时器的TimeBase可以指定PSC对时钟进行分频;指定ARR来确定一个计时周期。有

了这两个参数,定时器就可以以一定的周期工作,但它并没有直接控制输出信号,也就是说它并没有使

用定时器的各通道来控制通道所对应的电平。要点亮或熄灭LED灯,我们需要结合中断,在中断服务程

序中控制LED的亮灭。

PWM是在延时周期内,调整输出通道中高低电平的时间,也就是所谓有占空比。占空比是怎么实现的

呢?在TimeBase的基础上,使用一个称为CCR的寄存器,为它指定一个值。当定时器的计数器CNT

不断变化的同时,它还会和CCR进行比较,CNT的值没有达到CCR之前,输出通道输出的是高或低

电平,而CNT的值与CCR的值匹配之后,输出通道会输出相反的电平。这样,指定不同的CCR值,

在一个计时周期内,高低电平的长短就是确定的了。这个功能在OC,也就是输出比较器内完成。

还没有完,CNT的值没有达到CCR之前,输出高电平还是低电平,需要一个参照,这个参照就是输出

比较器的极性!极性与PWM的工作模式(PWM1或PMW2)结合,就能明确知道某个通道在什么时

候输出什么电平了。

查数据手册可知:

在PWM1模式下,使用向上计数时,若CNTCCR,则通道上输出的值就是极性值;当CNT与CCR

的值匹配后,通道上输出的电平是极性值的相反值。

反之亦然。

创建工程

打开STM32CubeMX,创建一个新工程,选择TIM1,配置如下:

注意各通道对应的物理引脚

参数设置

两个通道配置的参数,请注意与后面的结果进行验证

从上到下一个一个的来说明一下:

CounterSettings:

•预分频器,NUCLEOF072RB的工作频率默认为48MHz,经48000分频之后的工作频率为

1Khz。

•计数模式,向下还是向下计数

•计数周期:0~999,这样一个计数周期下来,时间刚好是1秒。

BreakAndDeadTimeManagement,这里只用到了死区设置,没有用到刹车功能:

•死区时间,范围为0~FF,需要根据实际情况计算并指定

PWMGenerationChannel1And1N,通道1的互补PWM输出设置:

•模式:分PWM1和PWM2模式,二者的区别在于比较时生成的OCxREF的值不同

•CCR:CNT与之比较的值,根据比较结果,通道输出相应的高低电平

输出通道的极性

先来看一张图

我们需要知道:CNT计数器在与CCR比较之后,会生成一个OCxREF,这个值并不是通道上最终的电

平值,视情况而定,它还需要经过两个步骤:一个是DTG,另一个是输出控制器。DTG就是所谓的死

区时间,用来防止OCx和OCxN同时输出,这个在电机控制里非常重要。而输出控制器就是所谓的极

性设置,它与OCxREF进行按位加运算后,得到的结果者是最终通道的输出值。

举个例子说明:

设定时器使用向上计数,PWM模式为PWMMode1,那么当CNTCCR时,OC1REF

文档评论(0)

工地殿小二 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档