STM32的定时器,PWM输出

在学完 定时器 PWM输出实验(通道使用TIM3_CH2)时,有两个个疑问,1、在我看手册时关于TIMX_CNT的介绍是计数器的值,但2个实验中没有看到有关它的出现,出现的都是arr psc两个寄存器,而手册中关于寄存器TIM3_CCMR1中的OC2M描述的是需要比较TIM3_CNT和TIM3_CCR2,但我没看到给TIM3_CNT赋值啊。我不知道这个TIM3_CNT,具体的作用是干嘛的 难道不能由软件控制 是属于硬件计数?求指教
2、对于定时器,在以往学习单片机的时候,每次都要在进入中断函数后再次对寄存器的高8低8位赋初值,但我看STM32只是在初始化时赋值过一次,而不需要在中断函数中重新赋初值,我说的对吗?

STM32单片机的定时器,和以前你学的单片机相比,结构差别是非常大的。或者说,你可以看看AVR单片机的定时器,这和STM32的有很多共通之处。
TIMx_CNT的数值是无法改变的,只能软件或硬件的清零。在PWM试验的时候,CNT的数值根据设置的方式,从0增加到ARR寄存器设定的值时就自动清零,这段时间就是PWM的周期。CNT增加到和CCRx值相同时就让端口翻转,这时间决定占空比。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-19
1、 ARR 应该是自动重装载寄存器周期的值 PSC应该是TIMx时钟频率除数的预分频值
TIM3_CNT 是计数值 和 CCR 比较就可以了。

2 、对的,只需要初始化一次就好了。
相似回答