文章预览
不知道大家是否有过这样的经历:代 码全速运 行的时候,等了很久发现并没有得到想要的 结果,然后暂停之后发现程序死在了循环里面,或者断言里面。 那么,我们是否有办法在程序断言失败的时候,让程序自动停下来呢?而不是苦苦等待结果呢? 如果用常规的方法,肯定是在断言里面加入断点,只要断言失败,那么程序自然就停下来了。 但是我们知道, KEIL 加入断点后有可能在再次打开工程后消失,而且 STM32 单片机支持的断点数量也有限,有没有好的方法? 有的,就是软件断点! 你可以在需要停止 CPU 运行的代码中加入这条语句: __breakpoint( 0 ); //后面的立即数不怎么重要 这样,当你的程序断言失败了之后,如果运行到这条语句,在线调试模式下就会自动停止单片机运行(如果不在 在线调试 模式,也会进入停止运行,所以需要后面的优
………………………………