《《STMPWM输出实验》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《STMPWM输出实验》PPT课件.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、例说例说STM32STM32 例说例说STM32STM322022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司1ALIENTEKALIENTEK开发板购买店铺开发板购买店铺 店铺:店铺:http:/http:/第第1010讲讲 PWMPWM输出实验输出实验 10.1 PWM简介 10.2 PWM相关寄存器 10.3 PWM配置步骤 10.4 实验讲解例说例说STM32STM3222022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司10.1 PWM简介例说例说STM32STM3232022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司脉冲
2、宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。STM32的定时器除了TIM6和7。其他的定时器都可以用来产生PWM输出。其中高级定时器TIM1和TIM8可以同时产生多达7路的PWM输出。而通用定时器也能同时产生多达4路的PWM输出,这样,STM32最多可以同时产生30路PWM输出!这里我们仅利用TIM3的CH2产生一路PWM输出。如果要产生多路输出,大家可以根据我们的代码稍作修改即可。1010.2 PWM2 PWM相关寄存器相关寄存器例说例说STM
3、32STM3242022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司捕获捕获/比较模式寄存器(比较模式寄存器(TIMx_CCMR1/2)该寄存器总共有2个,TIMx _CCMR1和TIMx _CCMR2。TIMx_CCMR1控制CH1和2,而TIMx_CCMR2控制CH3和4例说例说STM32STM3252022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司该寄存器的有些位在不同模式下,功能不一样,所以在图13.1中,我们把寄存器分了2层,上面一层对应输出而下面的则对应输入。关于该寄存器的详细说明,请参考STM32参考手册第288页,14.4.7一节。这里
4、我们需要说明的是模式设置位OCxM,此部分由3位组成。总共可以配置成7种模式,我们使用的是PWM模式,所以这3位必须设置为110/111。这两种PWM模式的区别就是输出电平的极性相反。例说例说STM32STM3262022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司捕获捕获/比较使能寄存器(比较使能寄存器(TIMx_CCER)该寄存器控制着各个输入输出通道的开关以及极性。例说例说STM32STM3272022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司捕获捕获/比较寄存器(比较寄存器(TIMx_CCR14)该寄存器总共有4个,对应4个输通道CH14。因为
5、这4个寄存器都差不多,我们仅以TIMx_CCR1为例介绍。例说例说STM32STM3282022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司在输出模式下,该寄存器的值与CNT的值比较,根据比较结果产生相应动作。利用这点,我们通过修改这个寄存器的值,就可以控制PWM的输出脉宽了。本章,我们使用的是TIM3的通道2,所以我们需要修改TIM3_CCR2以实现脉宽控制DS0的亮度。1010.3 3 通用定时器配置步骤通用定时器配置步骤例说例说STM32STM3292022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司1 1)开启)开启TIM3TIM3时钟,配置时钟
6、,配置PA7PA7为复用输出。为复用输出。要使用TIM3,我们必须先开启TIM3的时钟(通过APB1ENR设置),这点相信大家看了这么多代码,应该明白了。这里我们还要配置PA7为复用输出,这是因为TIM3_CH2通道是以IO复用的形式连接到PA7上的,这里我们要使用复用输出功能。2 2)设置设置TIM3TIM3的的ARRARR和和PSCPSC。在开启了TIM3的时钟之后,我们要设置ARR和PSC两个寄存器的值来控制输出PWM的周期。当PWM周期太慢(低于50Hz)的时候,我们就会明显感觉到闪烁了。因此,PWM周期在这里不宜设置的太小。例说例说STM32STM32102022/11/27广州市星
7、翼电子科技有限公司广州市星翼电子科技有限公司3 3)设置)设置TIM3_CH2TIM3_CH2的的PWMPWM模式。模式。接下来,我们要设置TIM3_CH2为PMW模式(默认是冻结的),因为我们的DS0是低电平亮,而我们希望当CCR2的值小的时候,DS0就暗,CCR2值大的时候,DS0就亮,所以我们要通过配置TIM3_CCMR1的相关位来控制TIM3_CH2的模式。4 4)使能)使能TIM3TIM3的的CH2CH2输出,使能输出,使能TIM3TIM3。在完成以上设置了之后,我们需要开启TIM3的通道2输出以及TIM3。前者通过TIM3_CCER1来设置,是单个通道的开关,而后者则通过TIM3_
8、CR1来设置,是整个TIM3的总开关。只有设置了这两个寄存器,这样我们才能在TIM3的通道2上看到PWM波输出。5 5)修改)修改TIM3_CCR2TIM3_CCR2来控制占空比。来控制占空比。最后,在经过以上设置之后,PWM其实已经开始输出了,只是其占空比和频率都是固定的,而我们通过修改TIM3_CCR2则可以控制CH2的输出占空比。继而控制DS0的亮度。10.4 实验讲解例说例说STM32STM32112022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司硬件设计:硬件设计:该部分,因为我们DS0是连接在PA8上的,而我们的PWM输出是在PA7,所以,硬件上应该把PA7和
9、PA8通过跳线帽短接起来,然后配置PA8为浮空输入(IO口复位后的状态),以免干扰PA7的信号。因此,本章的电路,除了在PA7和PA8之间放一个跳线帽,其他的都不需要改动。将下图中的PA7和PA8用跳线帽短接,图中圈出部分。实验现象:实验现象:DS0不停的由暗变到亮,然后又从亮变到暗。每个过程持续时间大概为3秒钟左右。例说例说STM32STM32122022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司软件设计:软件设计:timer.c#define LED0_PWM_VAL TIM3-CCR2 例说例说STM32STM32132022/11/27广州市星翼电子科技有限公司广州市星翼电子科技有限公司 main函数函数