当前位置:   article > 正文

【零基础学STM32】CubeMX+HAL配置PWM小灯_stm32 cubemx pwm控制led调光电路

stm32 cubemx pwm控制led调光电路

项目简介

本次小实验基于STM32F429IGT6开发板,通过对通用定时器的使用,达到以下实验目标:
输出PWM波,使得LED对应亮度,实现半呼吸灯
本文参考书为王维波老师的《STM32Cube高效开发教程 基础篇》最近高级篇已经出版 感兴趣的小伙伴可以支持一波
本文参考链接:野火-高级定时器

简单原理介绍

简单寄存器简介

在F4系列中,通用定时器指的是TIM2-5 & TIM9-14,其中TIM2-5有4个捕获/比较通道,可以实现外部时钟信号驱动,而TIM9-14只有1/2个通道,因为只能使用内部时钟信号。1个通道的还没有内部触发输入,也就不能使用从模式与其他定时器串联。
以2-5框图为例
TIM2-5框图

定时器内部时钟信号CK_INT,其源来自APB1/APB2,如果设置为从模式,还可以使用别的定时器输出信号作为自己的输入信号。
其中TIM9-11挂载在APB2,TIM12-14挂载在APB1
通过多项选择器,触发控制器输出CK_PSC信号,用于控制定时器复位,使能,计数等等
PSC经过PSC预分频处理(1~65536分频),进入CNT计数器(2-5 32位,9-12 16位,2-5还可以设置递增或递减计数,默认为递增计数),定时器运行时修改PSC分频值,需要下一个UEV事件到来之后才能修改
其上有ARR自动重装载寄存器,用来调控计数周期,有影子寄存器,通过ARPE的0/1来确定是否使用影子寄存器,即0时不适用,ARR写入新值立即生效;1时在UEV事件之后才更新影子寄存器中ARR写入的新值,UEV才生效。
CNT,PSC,ARR构成定时器的时基单元,其控制位有:
TIMx_CR1 ->CEN位使能寄存器,1时经过1周期,CK_CNT工作,0时不工作
TIMx_EGR ->UG通过软件模式产生一次更新时间,在经历一个CK_CNT一个脉冲,产生UEV并自动复位UG,计数器值清零重新计数
更多介绍详见参考手册,这里就不多赘述了

PWM波原理

PWM:脉冲宽度调制,即具有一定占空比的信号,对模拟电压进行数字编码,根据数电的知识,可以用施密特触发器产生(原理相似而已)
原理图如图所示
PWM原理图
通过设置捕获/比较寄存器CCR的值和ARR的值,就可以实现占空比的调节
注:书中给出的是CNT<CCR为高电平,此处插图给的是低电平
具体极性需要配置输出模式:
PWM模式1- 在向上计数时,一旦TIMx_CNT<TIMx_CCR1时通道1为有效电

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/952826
推荐阅读
相关标签
  

闽ICP备14008679号