Cómo utilizar un temporizador universal de STM32 para generar PWM con frecuencia ajustable
void TIM2_PWM_OUT_Conf(void)
{
RCC-gt;APB1ENR |=1lt;lt;0 //Reloj TIM2
RCC-gt;APB2ENR |=1lt;lt;2; //Reloj GPA
RCC-gt;APB2ENR |=1lt;lt;0; //Reloj AFIO
RCC -gt;APB2ENR |=1lt;lt;3; //Reloj GPB
RCC-gt;APB1ENR |=7lt;lt;0; //Reloj TIM2 TIM3 TIM4
GPIOA -gt;CRL amp;=0xFFFF0000; //
GPIOA-gt;CRL |=0x0000BBBB; //Salida AF
TIM2-gt;CR1 |=1lt;lt; 4; //Cuenta atrás
TIM2-gt;CCMR1 |=6lt;lt;4; //OC1M: PWM1
TIM2-gt;CCMR1 |=6lt;lt;12 ; //OC2M: PWM1
TIM2-gt;CCMR2 |=6lt;lt;4; //OC3M: PWM1
TIM2-gt;CCMR2 |=6lt;lt;12 ; //OC4M: PWM1
// TIM2-gt;CCMR1 |=1lt;lt;2;
// TIM2-gt;CCMR2 |=1lt;lt;10;
// TIM2-gt;CCMR1 |=1lt;lt;2;
// TIM2-gt;CCMR2 |=1lt;lt;10;
TIM2-gt;CCER |=1lt;lt;0; //CC1E HABILITADO
TIM2-gt;CCER |=1lt;lt;4; //CC2E HABILITADO
TIM2 -gt;CCER |=1lt;lt;8; //CC3E HABILITADO
TIM2-gt;CCER |=1lt;lt;12; //CC4E HABILITADO
TIM2-gt ;PSC =719; //720-1 PSC
TIM2-gt; ARR =PWM_PERIOD; //20ms
TIM2-gt;CR1 |=1lt;lt;0; /ENABLE
}
//El registro CCR modifica el ciclo de trabajo