关于STM32F407 PWM的理解

最近回头学习STM32F407单片机,以此文做为学习记录。若有哪位小伙伴有不同见解的,可以互相交流。

        一、TIMx时钟不清楚如何计算

        这里不得不提到STM32F407系列的时钟树,以及对应时钟树各参数值的定义,参数值的定义可以查看文件system_stm32f4xx.c

        因我使用的STM32F407为8MHz外设,对应的M值应为8。PWM需要使用TIMx进行比较输出,故使用APB1/APB2的时钟,我这以TIM3为例,TIM3使用APB1时钟总线,APB1时钟总线的分频量PRESC为4。因此APB1时钟总线输出的时钟频率为:HSE/M*N/P/APB1_PRESC*2 ,即8/8*336/2/4*2 = 84MHz

        (二)如何计算PWM频率,PWM频率高、低有何区别,PWM各分量的理解

        在使用TIMx完成PWM的比较输出时,需要输出指定频率的PWM,而在初始化时与TIM_TimeBaseInitTypeDef结构体下的TIM_Period与TIM_Prescaler变量有关。计算公式如下:APB1时钟/(TIM_Prescaler+1)/TIM_Period。

        PWM频率高表示变化快,低了变化慢。若使用于电机、PWM灯控时,会有很深的体验。PWM灯控时,若PWM频率较低,当PWM设置值过低时,会有频闪的现象;用于电机时,若达不到最低驱动频率,电机将无法正常工作。

        PWM分量即TIM_Period值,表示该时钟周期内(即晶振(HSE 8MHz)完成一个周期的信号输出),能操作的PWM分量,可让该周期内的PWM输出高/低电平的次数,即占空比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值