打印
[STM32F1]

STM32使用SWD连接报错总结

[复制链接]
506|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hatone1|  楼主 | 2023-11-26 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用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

主题

1

帖子

0

粉丝