STM32F030K6的TIM1定时功能不工作

2019-07-14 17:54发布

下面的2个函数在tiM3,TIM14,TIM16运行(定时功能)都没问题,但改用在TIM1的定时功能的话,整个程序不工作,查不出来原因
void TIM1_Init()
{
            RCC->APB2ENR|=1<<11;               //TIM1时钟使能
             TIM1->ARR=24000;                         //定时500us   
            TIM1->PSC=0;                                //1分频(0+1)  
            TIM1->EGR = 0x01;                   //允许产生更新事件
            TIM1->DIER|=1<<0;                  //允许更新中断  
            TIM1->DIER|=1<<6;                  //允许触发中断
            TIM1->CR1|=0x01;                    //使能定时器1
            NVIC->ISER[0]|=1<<13;
}        


/***********************************
* 名称:     TIM1_IRQHandler()
* 功能:     TIM1溢出中断服务子程序
* 入口参数: 无
* 出口参数: 无
* 说明:               产生1K方波                              
************************************/
void TIM1_IRQHandler(void)
{
           if(TIM1->SR&0X0001)      //溢出中断
           {
                        if((GPIOA->ODR&(1<<6))!=(1<<6))  PWM1_high;        
                       else  PWM1_low;                        
          }
          TIM1 ->SR&=~(1<<0);     //清除中断标志位
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
TOPCB
1楼-- · 2019-07-14 23:55
用仿真器查过,进不了void TIM1_IRQHandler(void)函数
wq644921241
2楼-- · 2019-07-15 02:57
定时器1中断要打开MOE输出,在刹车和死区寄存器里
TOPCB
3楼-- · 2019-07-15 08:10
连第1条指令都不执行,这么怪的。PCLK=HCLK=48Mhz
TOPCB
4楼-- · 2019-07-15 12:58
 精彩回答 2  元偷偷看……
TOPCB
5楼-- · 2019-07-15 14:03
多谢netlhx,加了MOE(见下),还是不行,但执行TIM1_Init();函数就死在那里不动,不往下走啊
void TIM1_Init()
{
            RCC->APB2ENR|=1<<11;                     //TIM1时钟使能(一定在这里设置)  
            TIM1->ARR=24000;                         //定时500us   
            TIM1->PSC=0;                             //1分频(0+1)  
            TIM1->EGR = 0x01;                  //允许产生更新事件
            TIM1->DIER|=1<<0;                  //允许更新中断  
            TIM1->DIER|=1<<6;                  //允许触发中断
            TIM1->CR1|=0x01;                   //使能定时器1
            NVIC->ISER[0]|=1<<13;              //允许TIM1中断允许
            TIM1->BDTR |=1<<15;                //打开MOE
}       
TOPCB
6楼-- · 2019-07-15 16:03
现可以执行Stm32_Clock_Init() 和SysTick_init();  但执行TIM1_Init()函数就死在那里不动

一周热门 更多>