|
FAQ上的网友求助的问题,大家帮忙回答下。https://www.stmcu.org.cn/faq/index/detail/id-70578 本人一开始采用的是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); } |
| 配置没有放上来 |
| 还是把简单的工程发上来吧。。。 |
| 帮顶。。。 |
| 看不出来 |
我从F103R8移植函数到C8都罢工 |
| 先把串口相关的去掉,试一下;怀疑是等待标志位的时间拖长了。 |
| 我在另外一个论坛上发了帖子,包含了整个工程,供参考:http://www.openedv.com/posts/list/55363.htm,疑问还是没有解决,期待中! |
微信公众号
手机版