STM32F030C8定时器进不了中断,代码如下,求教

2019-07-21 07:16发布

我用的是STM32F030C8
发现定时器进不了中断,查找原因未果,在此求教!
下面的我的代码:

定时器配置:
[mw_shl_code=c,true]void Tim3_Config(uint32_t period, uint16_t PrescalerValue) { NVIC_InitTypeDef NVIC_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; /* TIM3 clock enable */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /* Enable the TIM3 global Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* Time base configuration */ TIM_DeInit(TIM3); TIM_TimeBaseStructure.TIM_Period = period; TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_RepetitionCounter = period; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); TIM_ClearFlag(TIM3, TIM_FLAG_Update); /* TIM IT enable */ TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE); /* TIM enable counter */ TIM_Cmd(TIM3, ENABLE); } [/mw_shl_code] 中断函数:
[mw_shl_code=c,true]void TIM3_IRQHandler(void) { if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); printf("timer interrupt! "); } }[/mw_shl_code] 使用的库是STM32F0xx_StdPeriph_Lib_V1.5.0
startup_stm32f030.s中关于中断的定义有TIM3_IRQHandler,如下: [mw_shl_code=c,true]  [/mw_shl_code] [mw_shl_code=c,true]工程编译正常,下载正常,串口正常,但是就是进不了定时器中断(串口收不到中断中的字符串),请问问题出在哪?谢谢![/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
旅行者
1楼-- · 2019-07-22 13:51
你好,我现在用的定时器代码和你的一样,也是进不去中断,这里提到的原因“我的工程是作为APP使用的,程序未对中断向量表设置偏移,导致无法中断!”,这个要怎么配置啊?
lumilu
2楼-- · 2019-07-22 16:26
zealeric 发表于 2015-9-21 09:09
回复【6楼】TinyBoy:
---------------------------------
非常感谢你的热心解答,问题找到了,配置没问题, ...

请问是怎么解决的啊QQ1964439971
lumilu
3楼-- · 2019-07-22 17:49
 精彩回答 2  元偷偷看……
lumilu
4楼-- · 2019-07-22 20:14
问题解决了
PeterYu
5楼-- · 2019-07-22 21:05
学习学习,学习学习。

一周热门 更多>