如图所示,是我的SWD接口和复位接口
第一次下载成功,但是之后下载一直报错如下: JLink info: ------------ DLL: V4.92 , compiled Sep 30 2014 09:33:42 Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04 Hardware: V7.00 S/N : 20090928 Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFull * JLink Info: Found SWD-DP with ID 0x1BA01477 * JLink Info: Found SWD-DP with ID 0x1BA01477 * JLink Info: Found Cortex-M3 r1p1, Little endian. * JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots * JLink Info: TPIU fitted. * JLink Info: ETM fitted. ROMTableAddr = 0xE00FF003 **JLink Warning: Could not set S_RESET_ST Target info: ------------ Device: STM32F103RC VTarget = 3.300V State of Pins: TCK: 0, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 1 Hardware-Breakpoints: 6 Software-Breakpoints: 8192 Watchpoints: 4 JTAG speed: 1000 kHz Erase Done. Programming Failed! Error: Flash Download failed - "Cortex-M3" Flash Load finished at 16:11:43 后来按照网上的方法,取消勾选后reset and run之后,下载时快速按一下复位键,显示如下: JLink info: ------------ DLL: V4.92 , compiled Sep 30 2014 09:33:42 Firmware: J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04 Hardware: V7.00 S/N : 20090928 Feature(s) : RDI,FlashDL,FlashBP,JFlash,GDBFull * JLink Info: Found SWD-DP with ID 0x1BA01477 * JLink Info: Found SWD-DP with ID 0x1BA01477 * JLink Info: Found Cortex-M3 r1p1, Little endian. * JLink Info: FPUnit: 6 code (BP) slots and 2 literal slots * JLink Info: TPIU fitted. * JLink Info: ETM fitted. ROMTableAddr = 0xE00FF003 **JLink Warning: S_RESET_ST not cleared **JLink Warning: CPU did not halt after reset. **JLink Warning: CPU could not be halted * JLink Info: Core did not halt after reset, trying to disable WDT. **JLink Warning: CPU did not halt after reset. **JLink Warning: CPU could not be halted **JLink Warning: S_RESET_ST not cleared * JLink Info: Found SWD-DP with ID 0x1BA01477 * JLink Info: Found Cortex-M3 r1p1, Little endian. Target info: ------------ Device: STM32F103RC VTarget = 3.300V State of Pins: TCK: 0, TDI: 0, TDO: 1, TMS: 0, TRES: 1, TRST: 1 Hardware-Breakpoints: 6 Software-Breakpoints: 8192 Watchpoints: 4 JTAG speed: 1000 kHz Erase Done. Programming Done. Verify OK. Flash Load finished at 16:06:48 调试后发现硬件软件均没有问题,将下载器从JLINK更换成STLINK就可以正常下载程序了 |
有可能是你把SWD模式禁用了 禁用以后只能使用SWD模式下载一次程序 之后下载需要按下复位键下载
取消的方式也很简单 标准库的话默认使能SWD模式 去掉禁用语句就可以 cubemx的话默认是禁止SWD模式 使能的方法就是在SYS-Debug中选择serial wire项就启用SWD模式了
关于keil中的设置问题 如果取消勾选resert and run以后下载完程序需要重新上电才能运行 比较麻烦 还是勾选上就可以
设计上复位引脚的电阻是50欧姆吗 太小了 复位时电源消耗太大 换成1K以上 下载接口没有问题
是否需要写使能SWD语句?我用的是正点原子stm32f103rct6的标准库
重新上一次电,应该就可以跑了。如果还跑不起来,那有可能是你程序的问题。
但是问题还是没解决,总不能每次下载程序都按一次复位键。。
我用的是标准库,但是并没有写禁用SWD语句
标准库默认是使能SWD的 你可以看一下寄存器 看是不是这的问题
确认过了,程序没有禁用SWD,所以出现这样的情况不是很能理解是什么原因
也许是经验,也许是巧合:自从不随意删除,下载就没有过问题。
很好用,已经修复了F103和F030两类CPU了。