STM32F103ZET怎么设置TIM3_CH1、2、3、4输出四路PWM

2019-08-13 19:30发布

void TIM3_PWM_Init(u16 arr,u16 psc)
{                  

RCC->APB1ENR|=1<<1;      //TIM3 时钟使能
RCC->APB2ENR|=1<<3;       //使能 PORTB 时钟
GPIOB->CRL&=0XFF0FFFFF;  //PB5 输出
GPIOB->CRL|=0X00B00000;  //复用功能输出  
RCC->APB2ENR|=1<<0;        //开启辅助时钟
AFIO->MAPR&=0XFFFFF3FF;  //清除 MAPR 的[11:10]
AFIO->MAPR|=1<<11;         //部分重映像,TIM3_CH2->B5
TIM3->ARR=arr;        //设定计数器自动重装值
TIM3->SC=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                  
} 还有就是四路PWM都分别可调吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
zq1741314853
2019-08-14 19:56
void TIMER3_PWM(u16 arr,u16 psc)
{
        RCC->APB2ENR|=1<<3;
        RCC->APB2ENR|=1<<0;                //AFIO
        RCC->APB1ENR|=1<<1;
       
        GPIOB->CRL&=0xff0fff00;
        GPIOB->CRL|=0x00b000bb;
       
        AFIO->MAPR&=0xfffff3ff;
        AFIO->MAPR|=2<<10;
       
        TIM3->ARR=arr;
        TIM3->PSC=psc;
        TIM3->CCMR1|=3<<13;                //CH2
        TIM3->CCMR1|=1<<11;
        TIM3->CCER|=1<<4;       

        TIM3->CCMR2|=3<<5;                //CH3
        TIM3->CCMR2|=1<<3;
        TIM3->CCER|=1<<8;               
       
        TIM3->CCMR2|=3<<13;                //CH4
        TIM3->CCMR2|=1<<11;
        TIM3->CCER|=1<<12;       
       
        TIM3->CR1|=1<<7;                //APRE使能
        TIM3->CR1|=1<<0;       
}
CH1通道不可以输出,应该是配置问题。。

一周热门 更多>