求助,关于STM32F407的定时器中断问题!!

2019-07-20 03:40发布

        求助各位大佬,最近在调一块板子,芯片是STM32F407VGT,在调试TIM3中断的时候出现问题,仅仅是想定时通过串口输出东西,串口能调通,普通定时功能也正常,就是打开定时中断之后程序卡死了,仿真发现程序会跑到0x00000000,点run就一点点爬,请问各位大佬这是什么问题?
代码如下:
定时器初始化:
void TIM3_init(void)  
{  
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;  

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);  ///ê1ÄüTIM3ê±Öó        APB1 = 42MHZ  TIM3 = APB1*2 = 84Mhz

    TIM_DeInit(TIM3);
    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
    TIM_TimeBaseStructure.TIM_Prescaler = 8400-1;
    TIM_TimeBaseStructure.TIM_Period = 19999;
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//ÏòéϼÇêy
    TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

    WF_NVIC_Set(TIM3_IRQn,1,1,ENABLE);
                TIM_ClearITPendingBit(TIM3,TIM_IT_Update);
    TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE );
                TIM_SetCounter(TIM3, 0);

    TIM_Cmd(TIM3, ENABLE);  
}       

void TIM3_IRQHandler(void)
{
        if(TIM_GetITStatus(TIM3,TIM_IT_Update)==SET)
        {
                printf("11111111r\n");
                TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
1965969523
1楼-- · 2019-07-20 08:54
中端里面别用printf
烈日灼心
2楼-- · 2019-07-20 12:07
 精彩回答 2  元偷偷看……
易方亮
3楼-- · 2019-07-20 15:38
1965969523 发表于 2019-2-26 11:05
中端里面别用printf

其实我主要是想把这个定时器中断用起来,我试过把printf去掉,换成其他的操作,程序就是不进去中断,比如我定时2秒钟,程序开始跑,过了两秒之后程序就开始跑到我说的0x00000000那里去了,求解
1965969523
4楼-- · 2019-07-20 16:23
 精彩回答 2  元偷偷看……

一周热门 更多>