打印
[STM8]

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

[复制链接]
3083|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 | 只看该作者
先关了其它中断,只留下串口中断看看?

使用特权

评论回复
5
mmuuss586| | 2016-5-17 13:58 | 只看该作者
把串口关了试下看看,看是哪一部分程序引起的;

使用特权

评论回复
6
cnsxgh|  楼主 | 2016-5-18 17:49 | 只看该作者
原因找到了,是串口中断程序里面少了一句话: if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)!= RESET)
看来是进入USART1_RX_TIM5_CC_IRQHandler中断后还得再判断一下是不是串口中断。
问题是我根本没有使能TIM5,更没有打开TIM5捕获。不知道这是ST的一个BUG,还是我用的不对。
看来,如果程序要频繁地进入串口中断,还是加上那句话好。

使用特权

评论回复
7
dentsgot| | 2016-5-18 20:59 | 只看该作者
你单步运行看看是否程序进入硬件中断吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

57

主题

121

帖子

3

粉丝