如何不断开启关闭定时器3

2019-10-15 22:54发布

比如说我一开始开启了定时器3,然后我隔一段时间需要关闭,再过一段时间我又要开启,然后是重新赋初值的。。
TIM3->CR1&=0xfe;    //关闭定时器3
TIM3->CR1|=0x01;    //使能定时器3
用这两句不行,怎么解决,求高手解决
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
科科1987
2019-10-16 02:21
回复【楼主位】sxh0800210135:
---------------------------------
//”PWM输出初始化
 //arr:自动重装值
 //psc:时钟预分频数
 void WM_Init(u16 arr,u16 psc)
 {         
 //此部分需手动修改IO口设置
  RCC->APB1ENR|=1<<1;       //TIM3时钟使能    

 GPIOA->CRH&=0XFFFFFFF0;//PA8输出
  GPIOA->CRH|=0X00000004;//浮空输入
     
  GPIOA->CRL&=0X0FFFFFFF;//PA7输出
  GPIOA->CRL|=0XB0000000;//复用功能输出    
 GPIOA->ODR|=1<<7;//PA7上拉 
 
 TIM3->ARR=arr;//设定计数器自动重装值 
 TIM3->SC=psc;//预分频器不分频
  
  TIM3->CCMR1|=7<<12;  //CH2 WM2模式   
 TIM3->CCMR1|=1<<11; //CH2预装载使能    

 TIM3->CR1=0x8000;   //ARPE使能  
 TIM3->CR1|=0x01; //使能定时器3        


TIM3->CR1=0x8000;   //ARPE使能   
这句话,默认就把CR1的最低位给关了。
改为:TIM3->CR1|=0x80;    //ARPE自动装载使能

一周热门 更多>