出现这种情况,把板子的启动模式先修改了,然后连接上仿真器,把falsh中的程序全部擦除。这样就可以重新下载程序调式,同时也说明时程序导致仿真器挂掉的。
重新下载程序,然后单步调试,使用F11逐步往下执行,发现在生成程序的第一个函数
HAL_Init()中, 调用了HAL_MspInit();/* Init the low level hardware */,而在这个函数中,有关于debug的注释/** NOJTAG: JTAG-DP Disabled and SW-DP Enabled*/,注释下面的函数就是使能JTAG和SWD功能的。不能进行调试的代码是因为着两个仿真器的设置全部都被禁用了。
这一个函数的生成对应cubeMX中的SYS配置,如下图:
如果选择的是No Debug,则生成的代码就会禁用调试,导致出现上述问题,故需要调试的时候,要修改DEBUG的设置。或者在生成代码后屏蔽这句代码即可!