STM32F103ZET精英板中PA0不能输出PWM

2019-07-20 23:15发布


我用TIM5_CH1打算在PA0上输出PWM,如下TIM5_PWM_Init(u16 arr,u16 psc)是我参考例程TIM3_PWM_Init(u16 arr,u16 psc)编写的PWM初始化程序,TIM3可以输出PWM,但是我编写的TIM5输出脚我用示波器查看始终是高电平一条直线,没有PWM输出,我将完整的工程文件添加到附件中了,麻烦各位帮我看看是什么问题,谢谢!

//TIM3 PWM部分初始化
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void TIM3_PWM_Init(u16 arr,u16 psc)
{                                                          
        //此部分需手动修改IO口设置
        RCC->APB1ENR|=1<<1;         //TIM3时钟使能
       
        RCC->APB2ENR|=1<<3;            //使能PORTB时钟

       
//        RCC->APB2ENR|=1<<6;            //使能PORTE时钟
//        GPIOE->CRL&=0XFF0FFFFF;        //PE5输出
//        GPIOE->CRL|=0X00B00000;        //复用功能输出

        GPIOB->CRL&=0XFF0FFFFF;        //PB5输出
        GPIOB->CRL|=0X00B00000;        //复用功能输出       
       

          
        RCC->APB2ENR|=1<<0;     //开启辅助时钟          
        AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
        AFIO->MAPR|=1<<11;      //部分重映像,TIM3_CH2->PB5

        TIM3->ARR=arr;                        //设定计数器自动重装值
        TIM3->PSC=psc;                        //预分频器不分频
       
        TIM3->CCMR1|=7<<12;          //CH2 PWM2模式                 
        TIM3->CCMR1|=1<<11;         //CH2预装载使能          
        TIM3->CCER|=1<<4;           //OC2 输出使能          
        TIM3->CR1=0x0080;           //ARPE使能
        TIM3->CR1|=0x01;            //使能定时器3                        
}

/*******************设置TIM5_CH1 PWM输出******************************/
void TIM5_PWM_Init(u16 arr,u16 psc)
{
    RCC->APB1ENR|=1<<3;         //TIM5时钟使能
        RCC->APB2ENR|=1<<2;            //使能PORTA时钟       

        GPIOA->CRL&=0XFFFFFFF0;        //PA0输出,清除之前设置
        GPIOA->CRL|=0X0000000B;        //复用功能输出       
        RCC->APB2ENR|=1<<0;     //开启辅助时钟         
       
    TIM5->ARR=arr;                        //设定计数器自动重装值
        TIM5->PSC=psc;                        //预分频器不分频
       
//        TIM5->CCMR1&=~(3<<0);          //CC1通道被配置为输出;
        TIM5->CCMR1|=7<<4;          //CH1 PWM2模式                 
        TIM5->CCMR1|=1<<3;             //CH1预装载使能          
        TIM5->CCER|=1<<0;           //OC1 输出使能          
        TIM5->CR1=0x0080;           //ARPE使能
        TIM5->CR1|=0x01;            //使能定时器5        


}           


0条回答

一周热门 更多>