实验目标:使用STM32定时器来产生PWM输出,使用TIM1通道1产生PWM来控制DS0亮度
什么是PWM?脉冲宽度调制,Pulse Width Modulation的缩写,简称脉宽调制,利用微处理器数字输出来对模拟电路进行控制。
假设定时器工作在向上计数PWM模式,CNT小于CRRx时输出0,CNT>=CCRx时输出1,可以得到上面这样的示意图。改变CCRx的值就可以改变PWM输出的占空比,改变ARR的值就可以改变PWM输出的频率,这就是PWM输出原理。
32除了6、7其他的定时器都可以产生PWM,1,8可以产生多达7路同时PWM输出。所以我们的32能够同时产生30路PWM输出。
要让TIM1产生PWM输出,除了上一章的4个寄存器我们还需要另外4个:
1、捕获比较模式寄存器 TIMx_CCMR1/2
2、捕获比较使能寄存器 TIMx_CCER
3、捕获比较寄存器TIMx_CCR1~4
4、刹车和死区寄存器TIMx_BDTR
第一个:捕获比较模式寄存器
一共有两个,TIMx_CCMR1控制1和2,~2控制CH3和4.
模式设置为OCxM,三部分组成,总共可以组成7种模式。PWM模式使用110/111
第二个:捕获比较使能寄存器
想要PWM从IO口输出,这个位必须设置为1。
第三个:捕获/比较寄存器<