【分享帖】stm32中断简化版,喜欢的进来看看

镇海沿江路 镇海沿江路 | 1143 | 2015-12-18

void TIMx_pwm(TIM_TypeDef* TIMx,u16 arr,u16 psc,u8 ch1,u8 ch2,u8 ch3,u8 ch4)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;

if(TIMx==TIM2) RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
else if(TIMx==TIM3) RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
else if(TIMx==TIM4) RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);

TIM_TimeBaseStructure.TIM_Period = arr-1;
TIM_TimeBaseStructure.TIM_Prescaler =psc-1;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIMx, &TIM_TimeBaseStructure);
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

if(ch1==1){
TIM_OC1Init(TIMx, &TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIMx, TIM_OCPreload_Enable);}
if(ch2==1){
TIM_OC2Init(TIMx, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIMx, TIM_OCPreload_Enable);}
if(ch3==1){
TIM_OC3Init(TIMx, &TIM_OCInitStructure);
TIM_OC3PreloadConfig(TIMx, TIM_OCPreload_Enable);}
if(ch4==1){
TIM_OC4Init(TIMx, &TIM_OCInitStructure);
TIM_OC4PreloadConfig(TIMx, TIM_OCPreload_Enable);}

TIM_Cmd(TIMx, ENABLE);

}




TIMx_Int_Init(TIM3,0,0,500,72);

请问这篇文章对你有用吗?

【分享帖】stm32中断简化版,喜欢的进来看看
所有评论
暂无更多
暂无更多
关于作者
镇海沿江路
镇海沿江路
0 关注Ta
0 文章
0 经验值
0 获赞

目录

评论