STM32高级定时边沿对齐PWM模式,代码分享

    GPIO_InitTypeDef GPIO_InitStre;
    
    RCC_AHB1PeriphClockLPModeCmd(RCC_AHB1Periph_GPIOC, ENABLE);
    GPIO_InitStre.GPIO_Pin=GPIO_Pin_8;
    GPIO_InitStre.GPIO_Mode=GPIO_Mode_AF;
    GPIO_InitStre.GPIO_OType=GPIO_OType_PP;
    GPIO_InitStre.GPIO_PuPd=GPIO_PuPd_UP;
    GPIO_InitStre.GPIO_Speed=GPIO_Speed_2MHz;
    GPIO_Init(GPIOC, &GPIO_InitStre);
      /* Connect TIM8 pins to AF2 */  
    GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_TIM8);

    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStre;
    TIM_OCInitTypeDef TIM_OCInitStre;
    
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);

    //计数频率20kHz=168/(TIM_Prescaler+1)/(TIM_Period+1)
    TIM_TimeBaseInitStre.TIM_Prescaler=0;//定时器频率168M/(0+1)
    TIM_TimeBaseInitStre.TIM_Period=11200-1;//周期计数值 15k-11200  
    TIM_TimeBaseInitStre.TIM_ClockDivision=0x00;//不分频
    TIM_TimeBaseInitStre.TIM_CounterMode=TIM_CounterMode_Up ;
    TIM_TimeBaseInitStre.TIM_RepetitionCounter=0x00;
    TIM_TimeBaseInit(TIM8, &TIM_TimeBaseInitStre);
    
    TIM_OCInitStre.TIM_OCMode=TIM_OCMode_PWM1;
    TIM_OCInitStre.TIM_Pulse=0;//占空比0%
    TIM_OCInitStre.TIM_OCPolarity=TIM_OCPolarity_High ;
    TIM_OCInitStre.TIM_OutputState=TIM_OutputState_Enable ;
    TIM_OCInitStre.TIM_OCIdleState=TIM_OCIdleState_Reset ;
    TIM_OC3Init(TIM8, &TIM_OCInitStre);//消音圈
    
    TIM_CtrlPWMOutputs(TIM8, ENABLE);//注意!!高级定时器要加这个使能
    TIM_OC3PreloadConfig(TIM8, TIM_OCPreload_Enable);
    TIM_Cmd(TIM8, ENABLE);//使能时钟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值