keil5用stlink烧录时一直卡在application running

img


程序有警告,但是没有错误,在烧写时没有报错,一直没法出来flash load finished.网上这个的问题出现的比较少,魔法棒换了很多次也没法解决,有没有人帮帮忙啊

Keil5 是一款常用的嵌入式开发工具,STLink 是一种常用的烧录工具。当你在使用 Keil5 配合 STLink 进行烧录时,出现“application running”一直卡住的情况,可能是由于以下原因:

硬件连接问题:请检查 STLink 是否已正确连接到目标板上,并确保连接正常,同时检查电源是否稳定,确保连接没有松动。
程序问题:请检查你正在烧录的程序是否存在问题,例如程序代码中是否有死循环或卡死等问题,如果存在这些问题,程序将无法正常运行。
烧录参数设置问题:请检查烧录参数是否正确设置,例如烧录地址是否正确、芯片型号是否选择正确等。
针对以上可能导致该问题的原因,可以尝试以下解决方案:

检查硬件连接是否正确,确保连接无误。
检查程序代码是否有问题,可以使用 Keil5 的调试功能进行调试。
检查烧录参数设置是否正确,如果有问题,请重新设置参数。同时,可以尝试将烧录速度调低,有时候速度过快也会导致烧录失败

你好,这个还真没遇到过,看看烧入的程序能不能正常跑,能跑的就不用纠结。不能跑的话,试一下外部供电了在用stlink下载试一下,会不会是跟电源有关系。升级一下stlink的驱动在试试吧,还有一种可能是你的keil版本比较低,经常出现一些乱七八糟的问题。

该回答引用ChatGPT
根据您提供的信息,出现了警告,但没有错误,在烧写时没有出现报错,但程序一直卡在 "application running" 的情况可能和以下几点相关:

  1. 硬件问题:可能与STLink和目标设备之间的连接问题有关,可以尝试更换数据线和端口、检查设备和连接线是否有松动等问题。

  2. 代码问题:程序中的某些配置可能没有正确配置,或者存在死循环、卡死等问题。可以检查代码中与外设相关的初始化代码、中断优先级的设置等。

  3. KEIL配置问题:KEIL可能没有正确配置,或者配置文件被损坏了。可以尝试重新安装KEIL,或者检查配置文件中是否存在错误。

下面提供一些可能的解决方案:

  1. 检查硬件连接是否正确,将 STLink 与目标设备重新连接。

  2. 检查代码中是否存在死循环、错误的跳转等问题,可以将代码分段注释掉,逐步排查。

  3. 检查 KEIL 配置是否正确,可以尝试删除 KEIL 的配置文件或者重新安装 KEIL。

  4. 尝试使用其他烧录工具(例如 J-LINK)来烧录程序,看看是否能够成功烧录。

  5. 重新下载固件文件并重新生成程序,看看是否能够烧录成功。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个问题可能有多种可能性,以下是一些可能的原因和对应的解决方法:

  1. 软件或驱动问题:请检查你所用的Keil、ST-Link驱动程序是否与你的操作系统兼容,并尝试更新它们。此外,还应该检查Keil的相关设置是否正确,比如MCU的型号、芯片选项设置是否正确。

  2. MCU的设置:根据你的使用场景,配置正确的时钟、IO口等选项非常重要。请仔细检查你的MCU的各项设置是否正确。

  3. 电路问题:请检查你的电路是否正确连接,比如电源是否稳定,是否正确输入测试信号,是否使用正确的连接器等。

以下是一个基本的Keil选项设置示例:

#define STM32F103xB
//Clock Settings 
#define CLOCK_SOURCE_HSE     //晶振时钟
#define HSE_VALUE    8000000 //外部晶振频率
#define HSE_STARTUP_TIMEOUT    100
#define SYSCLK_FREQ_72MHz  72000000 //系统时钟频率
//SysTick Settings
#define USE_SysTick_TIM  1      //使用SysTick
#define SysTick_CLKSource_HCLK 1 //SysTick的时钟源为HCLK,即系统时钟
#define SysTick_Config_Val  900000 //SysTick定时器中断的时间 
//UART Settings
#define USE_UART1       1      //使用UART1串口
#define UART1_BAUDRATE  115200

希望这些提示对你有所帮助。
如果我的回答解决了您的问题,请采纳!