[Registro de aprendizaje] Experimento de salida STM32 PWM

Proceso de trabajo STM32 PWM

 Tome el canal 1 como ejemplo:

CCR1: Capturar registro de comparación (valor) (x=1,2,3,4): Establecer valor de comparación.

CCMR1: bits OC1M[2:0]:

              Para el modo PWM, se utiliza para configurar el modo PWM 1 [110] o el modo PWM 2 [111].

CCER: Bit CC1P: entrada/captura 1 polaridad de salida. 0: el nivel alto es válido, 1: el nivel bajo es válido.

CCER: Bit CC1E: habilitación de entrada/captura 1 salida. 0: apagado, 1: encendido.

Modo PWM 1 y Modo PWM 2

 

void TIM_OC2PreloadConfig( TIM_TypeDef * TIMx , uint16_t TIM_OCPreload );

void TIM_ARRPreloadConfig ( TIM_TypeDef * TIMx , FunctionalState NewState );

Temporizador STM32 pin de 3 canales de salida

Función de biblioteca de salida PWM

anular TIM_OCxInit ( TIM_TypeDef * TIMx , TIM_OCInitTypeDef * TIM_OCInitStruct );

 Establezca la función de valor de comparación:

void TIM_SetCompareX ( TIM_TypeDef * TIMx , uint16_t Compare2);

Habilite la precarga de comparación de salida:

void TIM_OC2PreloadConfig( TIM_TypeDef * TIMx , uint16_t TIM_OCPreload );

Bit de habilitación del registro de precarga para habilitar la recarga automática:

 void TIM_ARRPreloadConfig ( TIM_TypeDef * TIMx , FunctionalState NewState );

Experimento de salida PWM:

        Utilice la función PWM del temporizador 3 para generar una onda PWM con un ciclo de trabajo variable para controlar la luz LED, de modo que el brillo del LED [PB5] cambie de oscuro a brillante, y luego de brillante a oscuro, y así sucesivamente.

Pasos de configuración de salida PWM:

①Habilite      el temporizador 3 y el reloj del puerto IO relacionado.

         Habilitar el reloj del temporizador 3: RCC_APB1PeriphClockCmd();

         Habilitar reloj GPIOB: RCC_APB2PeriphClockCmd();

②Inicialice     el puerto IO como salida de función multiplex. Función: GPIO_Init ();

        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ; 

③Aquí     vamos a usar PB5 como pin de salida PWM del temporizador, por lo que necesitamos reasignar la configuración.

       Entonces necesitas encender el reloj AFIO. También configure la reasignación.

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

        GPIO_PinRemapConfig (GPIO_PartialRemap_TIM3, HABILITAR);

④Temporizador de inicialización    : ARR, PSC, etc.: TIM_TimeBaseInit ();

⑤Inicializar    parámetros de comparación de salida: TIM_OC2Init();

⑥Habilitar   registro de precarga: TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable );

⑦Habilite   el temporizador. TIM_Cmd ();

⑧Cambie continuamente   el valor de comparación CCRx para lograr diferentes efectos del ciclo de trabajo: TIM_SetCompare2();

Código importante:

temporizador.c:

C Principal:

 Después de descargar el programa, la luz roja cambia de oscuro a brillante y de brillante a oscuro.


Resumir

         Solo se puede decir que tengo una comprensión aproximada de los principios relevantes y el uso básico de PWM. La salida PWM se usará a menudo en la etapa posterior, por lo que espero volver y reorganizar el contenido de esta parte después de aprender contenido posterior!

 

Supongo que te gusta

Origin blog.csdn.net/weixin_47723114/article/details/127682209
Recomendado
Clasificación