单片机 > 单片机程序设计 > 详情

stm32定时器TIM2的PWM输出PB3

发布时间:2020-08-21 发布时间:
|

弄了好久,查了很多文章,最后解决了,用的是PB3 

引脚配置


void GPIO_TimPWM(void)

{

 GPIO_InitTypeDef GPIO_InitStructure;     

  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);   

  GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);  

  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); 

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   

  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3 ;  

  GPIO_Init(GPIOB, &GPIO_InitStructure);  

}


定时器和中断配置


void Timer2_Configuration(void)

{

  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

 TIM_OCInitTypeDef  TIM_OCInitStructure;

 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

 TIM_TimeBaseStructure.TIM_Period = 1000-1;             

 TIM_TimeBaseStructure.TIM_Prescaler = 72-1;            

 TIM_TimeBaseStructure.TIM_ClockDivision = 0x00;    

 TIM_TimeBaseStructure.TIM_CounterMode =  TIM_CounterMode_Up;   

 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  TIM_ARRPreloadConfig(TIM2, DISABLE);

 TIM_ClearITPendingBit(TIM2,  TIM_IT_Update); 

 TIM_ITConfig(TIM2,  TIM_IT_Update, ENABLE);

 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 

 TIM_OCInitStructure.TIM_OutputState =   TIM_OutputState_Enable; 

 TIM_OCInitStructure.TIM_Pulse = 500-1;     

 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

 TIM_OC2Init(TIM2, &TIM_OCInitStructure);  

 TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);  

 TIM_CtrlPWMOutputs(TIM2,ENABLE);       

 TIM_Cmd(TIM2, ENABLE);

}


产生1K的频率



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
PIC单片机基础知识之二