STM32使用SWD连接报错总结
2017-12-11 11:34
513 查看
使用SWD通过J-Flash烧写STM32时,会出现各式各样的错误;
总结下原因:
1、复位脚被拉低了,这次我遇到的就是复位引脚的电容焊反了(钽电容),可以正常连接,但是烧写程序时会出现如下报错
–>
- Erasing affected sectors …
- ERROR: RAM check failed @ address 0x20000000.
- ERROR: Write: 0x03020100 07060504
- ERROR: Read: 0x00000000 00000000
- ERROR: (0 bytes of RAM have been checked successfully)
- ERROR: Failed to erase sectors
- De-initializing CPU core (Exit sequence) …
- ERROR: Failed to auto program target
2、SWDIO和SWCLK线序错误、虚焊 、短接,错误表现为连接不成功;
3、另外会出现STM32: Connecting to CPU via connect under reset failed.
此时可以检查下VDDA和VSSA电压是否均正常,如果VDDA低于VDD太多会导致无法正常烧写芯片;
4、如果出现读取的id和工程设置的芯片id不符合的情况,多半是jlink本身有问题,固件与驱动不符,导致的读取数据错误;可以尝试更换低版本的驱动,有时候最新的不一定是最合适的。
5、如果在程序中禁用了SWD调试接口,即将SWD所用的IO口当作普通的IO口使用时,下载完第一次程序后,如果从flash启动(BOOT0==0)则无法继续使用SWD接口重新下载程序或者调试;
此时可能会出现如下提示:
- Connecting …
- Connecting via USB to J-Link device 0
- Target interface speed: 200 kHz (Auto)
- VTarget = 3.345V
- ERROR: Failed to connect.
Could not establish a connection to target.
解决办法是将BOOT0拉高,让程序从ram启动,则可以使用SWD重新下载程序;
总结下原因:
1、复位脚被拉低了,这次我遇到的就是复位引脚的电容焊反了(钽电容),可以正常连接,但是烧写程序时会出现如下报错
–>
- Erasing affected sectors …
- ERROR: RAM check failed @ address 0x20000000.
- ERROR: Write: 0x03020100 07060504
- ERROR: Read: 0x00000000 00000000
- ERROR: (0 bytes of RAM have been checked successfully)
- ERROR: Failed to erase sectors
- De-initializing CPU core (Exit sequence) …
- ERROR: Failed to auto program target
2、SWDIO和SWCLK线序错误、虚焊 、短接,错误表现为连接不成功;
3、另外会出现STM32: Connecting to CPU via connect under reset failed.
此时可以检查下VDDA和VSSA电压是否均正常,如果VDDA低于VDD太多会导致无法正常烧写芯片;
4、如果出现读取的id和工程设置的芯片id不符合的情况,多半是jlink本身有问题,固件与驱动不符,导致的读取数据错误;可以尝试更换低版本的驱动,有时候最新的不一定是最合适的。
5、如果在程序中禁用了SWD调试接口,即将SWD所用的IO口当作普通的IO口使用时,下载完第一次程序后,如果从flash启动(BOOT0==0)则无法继续使用SWD接口重新下载程序或者调试;
此时可能会出现如下提示:
- Connecting …
- Connecting via USB to J-Link device 0
- Target interface speed: 200 kHz (Auto)
- VTarget = 3.345V
- ERROR: Failed to connect.
Could not establish a connection to target.
解决办法是将BOOT0拉高,让程序从ram启动,则可以使用SWD重新下载程序;
相关文章推荐
- 基于STM32使用TCP/IP,HTTP协议连接云服务器个人总结
- 【总结:数据库连接字符串的使用方法】
- stm32 JTAG和SWD的使用区别
- Delphi6中使用TADOConnection和TADQuery组件连接访问数据库总结
- Qt下使用QtSql连接sqlite3所遇到的问题总结
- STM32调试接口SWD连接
- STM32使用问题总结
- STM32的I2C的使用要注意啦(用来连接EEPROM,存储数据),关于I2C的busyflag以及与FSMC冲突!
- Docker 使用方法总结之:容器的连接
- 总结:数据库连接字符串的使用方法
- VMWare使用host-only网络连接总结
- STM32调试接口SWD连接
- STM32 GPIO使用超强总结
- STM32L152 ADC使用总结
- (总结)使用STM32需要注意的问题
- 使用Ulink2的JTAG与SWD 调试stm32 区别
- 64位windows,使用.net连接oracle 9总结
- 使用Jlink通过SWD接口给STM32下载程序连线方式
- 使用JDBC连接各种数据库(总结)
- Qt连接QSqlite数据库,使用QTableWidget显示数据总结