STM32-8 PWM(上)

我手上的板子是L476RG,在当中一共有11个定时器:
http://img2.58codes.com/2024/20146325bcNQrE9W8D.png
http://img2.58codes.com/2024/20146325aYomniOnY1.png
其中分为基本、通用、高阶三种
基本定时器:TIM6,TIM7
通用定时器:TIM2,TIM3,TIM4,TIM5,TIM15,TIM16,TIM17
高阶定时器:TIM1,TIM8

高阶定时器:具有6个可输出PWM通道1个混合通道、输入捕获、输出比较、单脉冲模式、PWM生成
http://img2.58codes.com/2024/20146325rhlNQglDCP.png通用定时器:具有4个可输出PWM通道1个混合通道、输入捕获、输出比较、单脉冲模式、PWM生成(15仅有2个独立通道,16,17各1个独立通道)
http://img2.58codes.com/2024/201463250UXgalzIG6.png基本定时器:只能做定时功能与单脉冲模式,无独立通道
http://img2.58codes.com/2024/20146325M37ePDywEg.png
在使用时可以透过DataSheet查找对应的脚位,或是直接透过IDE当中去的GPIO去查询相关的脚位~
http://img2.58codes.com/2024/20146325MRMSXOqyGJ.png

PWM工作原理

PWM是将类比信号转换为脉波,一般转换后脉波的週期固定,但脉波的占空比会依类比信号的大小而改变。

什么是佔空比(Duty Cycle)?
佔空比是指输出的PWM当中,高电位保持的时间与整个週期之比。可以看到下图当中最上方为50%的佔空比,也就是高电位与低电位各佔50%。

週期:一个脉冲信号的时间(高电位+低电位)
脉冲时间:高电位的时间

http://img2.58codes.com/2024/20146325jUIJv3yTlo.png
举例来说週期是10ms,脉冲时间(高电位)是6ms低电位是4ms,加总就会等于6/6+4=60%,占空比也就等于60%。
http://img2.58codes.com/2024/20146325hRX5ag97e1.png
Timer使用PWM输出模式时,相比前面所介绍到的Timer定时模式CNT与ARR,还会多了一个CCRx。可以看到上方的图片,在模式2向上计数的情况下,CNT计数值大于CCRx的时候会输出高电位,相反的低于CCRx时则是低电位。
http://img2.58codes.com/2024/20146325XwFCEkiMan.jpg
按照上方的图来看可以得知 :

ARR : 主要控制的是频率,也就是绿框的部分
CCRx : 主要为控制佔空比,也就是蓝框的部分


计算方法

PWM频率计算
Fpwm =Tclk / ((arr+1)*(psc+1))(单位:Hz)工作週期(佔空比)
duty cycle = pulse/ARR * 100%

假如时钟频率为16Mhz分频係数设为15,想要产生一个200hz的工作週期为75%的方波,计算方式如下:
200hz = 16mhz / (arr+1)*(15+1) 这样arr会等于5000
工作週期计算则会变成
pulse/5000x100% = 75% 这样pulse会等于3750
http://img2.58codes.com/2024/20146325E8Zn3VnDob.png
以上内容如果有误的话,麻烦各位通知我。感谢~


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章