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

2019-07-14 14:54发布

在做步进电机的控制时,需要用到pwm脉冲计数,我想的是pwm输出的同时开启溢出中断,在服务函数里计算脉冲数。现在遇到的问题是,定时器中断和pwm输出 这两个代码分开的时候,两个都能正常运行,但是合在一起的时候就触发不了中断了。用的寄存器
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
Unfair
1楼-- · 2019-07-14 22:37
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ÖжÏ
        MY_NVIC_Init(1,3,TIM3_IRQn,2);//ÇÀÕ¼1£¬×ÓÓÅÏȼ¶3£¬×é2       
        //TIM3->CCER|=1<<4;           //OC2 Êä³öʹÄÜ        £¬ Êä³ö¼«ÐÔΪ¸ß
        TIM3->CR1=0x0080;           //ARPEʹÄÜ
        TIM3->CR1|=0x03;            //ʹÄܶ¨Ê±Æ÷3 £¬²¢Ö»ÓÐÒç³ö´¥·¢ÖжϠ                                                                                 
}           
Unfair
2楼-- · 2019-07-14 23:23
void TIM3_IRQHandler(void)
{
  LED1=1;
  delay_ms(500);       
        if(TIM3->SR>>2&0X0001)//Òç³öÖжÏ
        {
                        pluse=pluse+1;                                                                                               
        }                                  
        TIM3->SR&=~(1<<2);//Çå³ýÖжϱê־λ             
}
jfuwre
3楼-- · 2019-07-15 00:43
 精彩回答 2  元偷偷看……
mxvuwyerw
4楼-- · 2019-07-15 02:04
代码中最大的问题中断里延时,推荐一种高效方法,资源够用的情况下,可以考虑结合DMA精确脉冲控制,不用频繁进入中断。
Unfair
5楼-- · 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       
}           
Unfair
6楼-- · 2019-07-15 07:28
extern u16 pluse;
void TIM3_IRQHandler(void)
{  
        if(TIM3->SR&0X0001)//Òç³öÖжÏ
        {   
                 
                        pluse++;
//      if(pluse>6400)               
//                        ENA=1;
               
        }                                  
        TIM3->SR&=~(1<<0);//Çå³ýÖжϱê־λ                 
}

一周热门 更多>