stm32单片机Pwm输出对频率,定时器的理解

Pwm输出

  • 原理介绍
  • 流程展示
    • 代码问题

原理介绍

stm32单片机Pwm输出对频率,定时器的理解_第1张图片
32单片机外接了一个8M的晶振,经过9倍的倍频后,PLL锁相环输出72Mhz的频率。这即系统的主频。

定时器中 TIM3_Init(u16 arr,u16 psc)这个初试函数中,arr是自动重装载值,psc是可编程预分频器。(他们共同设置什么时候该溢出)
比如arr = 899, psc = 0;
就表示没有分频,此时定时器的时钟频率仍为72MHz,表示每个周期定时器经过900个脉冲,周期 = 1/72 us *900
PWM 的频率就是 72000 000/900 = 8M

stm32单片机Pwm输出对频率,定时器的理解_第2张图片
当我们设置pwm模式2,极性为高时
stm32单片机Pwm输出对频率,定时器的理解_第3张图片
pwm输出为这样的模式,由于我们想制作,呼吸灯,可以通过不断改变ccr的值,来改变占空比。从而调整LED灯的亮度。

流程展示

stm32单片机Pwm输出对频率,定时器的理解_第4张图片
ps:小细节

  1. TIM_ClockDivision的作用就是在未分频之前根据要求建立新的分频器,确定定时器,确定一定的延时时间,在此时间内完成一定预期的功能,一般不太用,所以无论是定义图二中的哪个值对原本定时器的频率都毫无影响

TIM_TimeBaseStructure.TIM_ClockDivision=0;这个语句的意思是不分频,换句话说频率不变。

  1. 在这里插入图片描述有关pwm模式2
    stm32单片机Pwm输出对频率,定时器的理解_第5张图片
    这两种pwm模式就是输出电平的极性相反

如同上图画的那样,占空比的有效部分是由
极性和pwm模式共同决定的。
3. 配置后,紧接着初始化函数
结构体一定要放在函数的最前面

代码问题

  1. 首先注意每一行代码之间的联系和逻辑
    stm32单片机Pwm输出对频率,定时器的理解_第6张图片
    比如 if这里dir =0;
    那么后面的pwmled (crr(21Q

你可能感兴趣的:(stm32,单片机)