keil调试模式下能运行 烧录到板子中不能运行

keil调试模式下能运行 烧录到板子中不能运行

一、程序中使用了printf函数

1、现象

在debug模式下可以运行,脱离debug模式无法运行

2、 原因

在程序中使用了printf函数,但是却没有包含keil的微库,或者对于printf函数没有进行重定向操作

3、解决办法

(1)找到keil的魔术棒选项卡如下图所示

(2)找到Target目录下的Use MicroLIB选项并勾选

二、魔术棒中勾选了Plain Char is Signed

1、现象

在debug模式下可以运行,脱离debug模式无法运行

2、原因

可能和单片机是相关的,当时用的是stm32f407单片机,然后就出现了这个问题。这也说明了对于魔术棒中的配置尽量使用默认的配置,不要随意更改,否则就会遇到奇奇怪怪的问题。

3、解决办法

在魔术棒的C/C++下将Plain Char is Signed选项去掉(这种不常用的选项尽量默认)。

三、魔术棒中未勾选Reset and Run选项

1、现象

debug模式下可以运行,全速运行无法运行,按一下单片机复位按键就可以运行起来,或者给板子重新上电也可以运行起来。

2、原因

未勾选Reset and Run选项导致程序下载后不会自动复位从而导致的,按下复位或者重新上电都是为了让板子复位。

3、解决办法

打开魔术棒选项选择debug->settings->Flash Download->reset and run 选项勾选即可。

四、魔术棒中使能了Trace Settings选项

1、现象

程序烧录到板子中可以正常运行,debug模式下spi驱动异常,当时为了使用keil里面自带的Event Recorder功能,根据其他教程里面的描述需要使能Trace Settings,但是却造成了其他功能模块的异常。

2、原因

目前未知

3、解决办法

打开魔术棒选项选择debug->settings->Trace->Enable 选项取消勾选即可。

总结

对于debug模式下可以运行,烧录到板子无法运行的情况大部分要检查魔术棒中的设置,需要回忆以下魔术棒中进行了那些特殊的配置,跟之前运行正常的程序做一下对比,看看是否做了特殊的配置。

相关推荐

大华摄像头的性能及优势分析(大华摄像头的功能介绍及用户体验评价)
游戏的收入流水数据哪里可以查到(附资源)
亚博和365是一家的吗

游戏的收入流水数据哪里可以查到(附资源)

📅 09-25 👁️ 1385
半场战报:智利3-2委内瑞拉,塞佩达传射,巴尔加斯建功
战队信息
365bet娱乐网站

战队信息

📅 07-14 👁️ 3887
软件外包公司对比:海辉、软通、东软集团,中软国际等
体育外围app网站365

软件外包公司对比:海辉、软通、东软集团,中软国际等

📅 08-22 👁️ 9692
魔兽邮件在哪领取
体育外围app网站365

魔兽邮件在哪领取

📅 08-10 👁️ 3263