Keil调试技巧:使用仿真定位程序死机位置

我遇到的问题:

程序下载到实验板后,我的手一伸到板子的某处区域的上方,板子就死机了,板子上做了一秒闪烁一次的主板LED小灯也不闪烁了,停止了。

查找问题:

  1. 怀疑是板子上连接的杜邦线太多太乱,其中有短路造成。然后拔掉了所有杜邦线,但问题依旧。

  1. 怀疑是面包板坏了,有些区域联通了,短接了,造成死机。然后去掉了面包板,但问题依旧。

问题解决:

在keil中下载一次程序后,再进入仿真。然后手伸到板子某处区域的上方,板子死机。

重点!!!此时,点击红色x号,退出仿真,keil就会停留在死机处的对应代码那里!!!

顺利找到原因:

我写了UART2中断,但是中断里面忘记写清除中断标志位了。然后我的手一伸到板子的UART2相关引脚的上方,单片机受到干扰,就误以为UART2有数据接收,然后进入接收中断函数,然后就出不来了。。。

经验:

  1. 单片机死机,优先查看中断函数,先怀疑是不是死在中断里出不来了。

  1. Keil仿真,在死机时,点击红色x号退出仿真,keil会停留在最后仿真的区域,即死机对应的代码处。

(仿真前,记得先下载一次程序。)

物联沃分享整理
物联沃-IOTWORD物联网 » Keil调试技巧:使用仿真定位程序死机位置

发表评论