我的这个程序只要主函数把蜂鸣器的初始化函数删掉,舵机就不能动了求助

蜂鸣器用的一款低电平触发的有源蜂鸣器

舵机用的SG90

单片机stm32f407

舵机程序如下

void Tim8_ServoPwm_Init(u16 arr,u16 psc)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    TIM_OCInitTypeDef  TIM_OCInitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8,ENABLE);         
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);         

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6| GPIO_Pin_8 | GPIO_Pin_9;   
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;    
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;        
    GPIO_Init(GPIOC,&GPIO_InitStructure);              
    
    GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_TIM8); 
    GPIO_PinAFConfig(GPIOC,GPIO_PinSource8,GPIO_AF_TIM8); 
      GPIO_PinAFConfig(GPIOC,GPIO_PinSource9,GPIO_AF_TIM8); 

    TIM_TimeBaseStructure.TIM_Prescaler=psc - 1;  
    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; 
    TIM_TimeBaseStructure.TIM_Period=arr - 1;   
    TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1; 

    TIM_TimeBaseInit(TIM8,&TIM_TimeBaseStructure);

     
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
    TIM_OC1Init(TIM8, &TIM_OCInitStructure);  
    TIM_OC1PreloadConfig(TIM8, TIM_OCPreload_Enable);  
        
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
    TIM_OC3Init(TIM8, &TIM_OCInitStructure);  
    TIM_OC3PreloadConfig(TIM8, TIM_OCPreload_Enable);  
             
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; 
    TIM_OC4Init(TIM8, &TIM_OCInitStructure);  
    TIM_OC4PreloadConfig(TIM8, TIM_OCPreload_Enable);
    

    TIM_ARRPreloadConfig(TIM8,ENABLE);

    TIM_Cmd(TIM8, ENABLE);  
        
        TIM_CtrlPWMOutputs(TIM8,ENABLE);
    
    
        TIM_SetCompare1(TIM8,130);
        TIM_SetCompare3(TIM8,130);
        TIM_SetCompare4(TIM8,130);
}
 

蜂鸣器程序如下:

void BEEP_Init(void)
{   
  GPIO_InitTypeDef  GPIO_InitStructure;

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
  
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
    
    GPIO_SetBits(GPIOC,GPIO_Pin_8);
   
}

主函数如下:

int main(void)
{

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    delay_init(168);  
    BEEP_Init();
    Tim1_Pwm_Init(700,24);
    Tim8_ServoPwm_Init(2000,840);
    TIM7_Int_Init(500-1,8400-1);    
  
    
  while(1){
                 

        delay_ms(500);
      GPIO_ResetBits(GPIOC,GPIO_Pin_14);
        delay_ms(300);
        GPIO_SetBits(GPIOC,GPIO_Pin_14);    
        delay_ms(300);
          GPIO_ResetBits(GPIOC,GPIO_Pin_14);
        delay_ms(300);
        GPIO_SetBits(GPIOC,GPIO_Pin_14);    
        delay_ms(300);
    
        
    }
}

你把蜂鸣器的初始化关了,你这个 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);时钟使能也没有了,你把这个GPIOC时钟使能加到舵机的初始程序里应该就可以了