[STM8] 程序跑飞,只可以进中断,到不了大循环,怎么办?

[复制链接]
3253|6
 楼主| cnsxgh 发表于 2016-5-17 10:25 | 显示全部楼层 |阅读模式
STM8L052r8,开了四个中断,RTC中断 ,定时器4溢出中断,定时器捕获中断,串口中断。
程序跑飞后可以正常进RTC中断和定时器捕获中断,和定时器溢出中断,担是进不了串口中断和大循环,这是怎么回事?
FAQ 发表于 2016-5-17 10:58 | 显示全部楼层
你怎么确定跑飞了?
yklstudent 发表于 2016-5-17 12:02 | 显示全部楼层
串口接收溢出挂了
nstel 发表于 2016-5-17 13:54 | 显示全部楼层
先关了其它中断,只留下串口中断看看?
mmuuss586 发表于 2016-5-17 13:58 | 显示全部楼层
把串口关了试下看看,看是哪一部分程序引起的;
 楼主| cnsxgh 发表于 2016-5-18 17:49 | 显示全部楼层
原因找到了,是串口中断程序里面少了一句话: if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)!= RESET)
看来是进入USART1_RX_TIM5_CC_IRQHandler中断后还得再判断一下是不是串口中断。
问题是我根本没有使能TIM5,更没有打开TIM5捕获。不知道这是ST的一个BUG,还是我用的不对。
看来,如果程序要频繁地进入串口中断,还是加上那句话好。
dentsgot 发表于 2016-5-18 20:59 | 显示全部楼层
你单步运行看看是否程序进入硬件中断吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

121

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部