STM32F103 pwm输出同时开启溢出中断

2019-07-14 14:54发布

在做步进电机的控制时,需要用到pwm脉冲计数,我想的是pwm输出的同时开启溢出中断,在服务函数里计算脉冲数。现在遇到的问题是,定时器中断和pwm输出 这两个代码分开的时候,两个都能正常运行,但是合在一起的时候就触发不了中断了。用的寄存器
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
Unfair
2019-07-15 02:55
void TIM3_PWM_Init(u16 arr,u16 psc)
{       

        //´Ë²¿·ÖÐèÊÖ¶¯ÐÞ¸ÄIO¿ÚÉèÖÃ
        RCC->APB1ENR|=1<<1;         //TIM3ʱÖÓʹÄÜ   
        RCC->APB2ENR|=1<<3;            //ʹÄÜPORTBʱÖÓ       
//        GPIOB->CRL&=0XFF0FFFFF;        //PB5Êä³ö
//        GPIOB->CRL|=0X00B00000;        //¸´Óù¦ÄÜÊä³ö           
  RCC->APB2ENR|=1<<2;            //ʹÄÜPORTAʱÖÓ       
  GPIOA->CRL&=0X0FFFFFFF;        //PA7Êä³ö
        GPIOA->CRL|=0XB0000000;        //¸´Óù¦ÄÜÊä³ö        
          
        RCC->APB2ENR|=1<<0;     //¿ªÆô¸¨ÖúʱÖÓ          
//        AFIO->MAPR&=0XFFFFF3FF; //Çå³ýMAPRµÄ[11:10]
//        AFIO->MAPR|=0<<10;      //²¿·ÖÖØÓ³Ïñ,TIM3_CH2->PA7

        TIM3->ARR=arr;                        //É趨¼ÆÊýÆ÷×Ô¶¯ÖØ×°Öµ
        TIM3->PSC=psc;                        //Ô¤·ÖƵÆ÷²»·ÖƵ
       
        TIM3->CCMR1|=7<<12;          //CH2 PWM2ģʽ                 
        TIM3->CCMR1|=1<<11;         //CH2ԤװÔØʹÄÜ          
        TIM3->CCER|=3<<4;           //OC2 Êä³öʹÄÜ          ,Êä³ö¼«ÐÔΪµÍ
        TIM3->DIER|=1<<0;   //ÔÊÐí¸üÐÂÖжÏ
        TIM3->DIER|=1<<6;   //ÔÊÐí´¥·¢ÖжÏ
        TIM3->DIER|=1<<2;   //ÔÊÐí±È½Ï/²¶»ñ2ÖжϠ      
        //TIM3->CCER|=1<<4;           //OC2 Êä³öʹÄÜ        £¬ Êä³ö¼«ÐÔΪ¸ß
        TIM3->CR1=0x0080;           //ARPEʹÄÜ
        TIM3->CR1|=0x0005;            //ʹÄܶ¨Ê±Æ÷3 £¬²¢Ö»ÓÐÒç³ö´¥·¢ÖжϠ      

  MY_NVIC_Init(1,3,TIM3_IRQn,2);//ÇÀÕ¼1£¬×ÓÓÅÏȼ¶3£¬×é2       
}           

一周热门 更多>