定时器PWM输出 这个PWM输出基于那个普通定时器的基础上多了几个寄存器,分别为 而PWM输出的原理是: 当计数器不断循环计数时,这是上一章的内容,再在上面加三个寄存器。其中一个相当于这图中CCRX的作用,就是说当计数器小于这个值,就输出0,大于这个值就输出1,这样就可以实现波形占空比设置。ARP寄存器就是当计数器到了这个值得时候,对计数器清零,使其重新开始计数,这个就相当于对PWM波的频率进行设置。下面介绍这三个寄存器: 捕获/比较模式寄存器( tiMx_CCMR1/2): 其中,位 6:4 OC1M寄存器这是对输出电平的影响。具体看手册: 还有其余的四位寄存器介绍: 捕获/比较使能寄存器(TIMx_CCER): 我们写的话就对低2位寄存器的值进行设置就好了。 捕获/比较寄存器(TIMx_CCR1~4): 这个寄存器可以直接调用TIM_SetCompare1()函数进行设置。 主要有几个寄存器 选择定时器模式:TIM脉冲宽度调制模式2的寄存器:在库函数里面#defineTIM_OCMode_PWM1 ((uint16_t)0x0060)这是捕获/ 比较模式寄存器 1 (TIMx_CCMR1)的位 6:4 OC1M:输出比较1模式 (Output compare 1mode)TIM_OCInitStructure.TIM_OutputState//比较输出使能寄存器#define TIM_OutputState_Enable ((uint16_t)0x0001)捕获/ 比较使能寄存器 (TIMx_CCER) 位 0 CC1E:捕获/比较 1 输出使能 (Capture/Compare 1 output enable)。TIM_OCInitStructure.TIM_OCPolarity输出极性:#defineTIM_OCPolarity_Low ((uint16_t)0x0002)捕获/ 比较使能寄存器 (TIMx_CCER) 位 1 CC1P:捕获/比较 1 输出极性 (Capture/Compare 1output Polarity)。//使能TIM14在CCR1上的预装载寄存器捕获/ 比较模式寄存器 1 (TIMx_CCMR1)中的位 3 OC1PE:输出比较 1 预装载使能 (Output compare 1 preloadenable)//ARPE使能寄存器捕获/ 比较模式寄存器 1 (TIMx_CCMR1)的输出比较 1 预装载使能 (Outputcompare 1 preload enable)使能寄存器控制寄存器 1 (TIMx_CR1)的位 0 CEN:计数器使能 (Counter enable)比较值寄存器捕获/ 比较寄存器 1 (TIMx_CCR1)是16位的 程序是正点原子上的程序,但是改了一下。直接把设置PWM波形占空比和频率都写在pwm1函数里面。
|