STM32/STM8技术论坛
直播中

陈丽霞

8年用户 192经验值
私信 关注
[问答]

请问为什么TIM2中断函数每次都会执行两次?



本人一开始采用的是STM32F103RC,后来移植到STM32F103RB上,tiM3和TIM4正常,但TIM2中断函数每次都会执行两次,代码几乎都是一样的,不知道为啥。 初始化代码: //TIM2 1s中断一次,
ADC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseStructure.TIM_Prescaler = 7199;        
//0.1ms TIM_TimeBaseStructure.TIM_Period = 10000;        
//1s TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);
TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);
TIM_Cmd(TIM2, ENABLE);


中断函数代码:
void TIM2_IRQHandler(void)
{ USART_SendData(USART1, 0xFF);
while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
TIM_ClearITPendingBit(TIM2, TIM_IT_Update); }

回帖(7)

董薇

2018-10-10 08:47:15
配置没有放上来
举报

孙婷婷

2018-10-10 08:56:18
还是把简单的工程发上来吧。。。
举报

李悛

2018-10-10 09:12:58
帮顶。。。
举报

杨帆

2018-10-10 09:28:13
看不出来
举报

郎渐海

2018-10-10 09:45:39
我从F103R8移植函数到C8都罢工
举报

周睫蒙

2018-10-10 10:05:19
先把串口相关的去掉,试一下;怀疑是等待标志位的时间拖长了。
举报

李勇俊

2018-10-10 10:20:41
我在另外一个论坛上发了帖子,包含了整个工程,供参考:http://www.openedv.com/posts/list/55363.htm,疑问还是没有解决,期待中!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分