STlink无法下载?解决过程记录。

这篇具有很好参考价值的文章主要介绍了STlink无法下载?解决过程记录。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先分析一波

现象

stlink直接下载失败,要么no target connected,要么internal command error,要么stlink connect error。

设备管理器里,stlink是黑色,运行正常。说明电脑的stlink驱动正常。

按住复位键,下载,1秒松开,下载成功,说明stlink本身没问题。问题在stm32。

IO口接LED,亮度非常微弱,闪烁频率不正常。

一直按住复位键,keil就能检测并连接到stlink。

猜测

有可能是stm32进入了睡眠模式

也可能是占用了PC13导致的,听说PC13是啥电源端口,我没管。

可能是板子中的芯片写保护了,可能是因为电压不稳的问题,回想一下,这次故障就是从连接一个电路图开始的。

排查

关于在keil里的那些各种设置更改,比如改为under reset啊,依旧没用。

还有什么SW口被占用,c8t6调试口就是PA13和14。额,没被占用。

重启,重新拔插之类的不用说了,没用。

用Utility,更新stlink固件,不过要一直按住复位键,更新后依旧无用。

最后,想到了可能是读保护,因为连接那个电路的时候,wifi模块的RST引脚接到PB8又接到了VCC,由于我用的面包板,这里我就用一个1k电阻直接接到了面板板的正极,面包板本身的电就来自stm32的输出脚,这一下又直接经过电阻回到了PB8,也许是电流过大?我猜芯片就自动开启了读保护。我的就是这样。

我的解决办法

总之,成功解决了,先接好usb转串口(额,搞了一天搞混了,usb转串口好像不用,哎呀stlink下载失败,Stm32专栏,单片机,stm32,c语言,不管了),打开Utility,一直按住复位键,快速按那个插头图标,连接到target后,马上点击橡皮擦,擦除stm32所有存储。最后拔掉stlink重新插,问题解决。

stlink下载失败,Stm32专栏,单片机,stm32,c语言stlink下载失败,Stm32专栏,单片机,stm32,c语言

 stlink下载失败,Stm32专栏,单片机,stm32,c语言

再次失败

就在我以为成功之时,准备睡觉,又发现擦除后只能下载一次,后面又回到了解放前,服了......

又尝试了重映射配置,依旧没用。

stlink下载失败,Stm32专栏,单片机,stm32,c语言

boot解释

将boot配置为1,从系统存储器(ROM)启动,STM32在出厂时,由ST厂家在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,无法修改,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。

BOOT1=x   BOOT0=0   从用户闪存启动,这是正常的工作模式。
BOOT1=0   BOOT0=1   从系统存储器启动,这种模式启动的程序功能由厂家设置。
BOOT1=1   BOOT0=1   从内置SRAM启动,这种模式可以用于调试。

第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆!

第二种启动方式是系统存储器启动方式,即我们常说的串口下载方式(ISP),不建议使用这种,速度比较慢。STM32 中自带的BootLoader就是在这种启动方式中,如果出现程序硬件错误的话可以切换BOOT0/1到该模式下重新烧写Flash即可恢复正常。

第三种启动方式是STM32内嵌的SRAM启动。该模式用于调试。

stlink下载

当boot0设为1时,keil可以检测到SWDIO,用stlink下载好后,将跳线帽接回原状,即boot0和boot1都为0,然后按复位,程序运行。但是keil又无法连接到SWDIO。回到起点了。。。。。。也可以用线将boot0中间的针脚引导3.3正极与负极,与跳线帽一样现象。

串口下载

再尝试用flymcu串口下载,usb转串口的RX接到PA9,TX接到PA10,boot0置1,flymcu选择 DTR 的低电平复位,RTS 高电平进 BootLoader,下载成功,但想开始运行得boot0置0,于是又连接不到SWDIO。失败。

下午四点,即使是boot0置1也无法识别SWDIO,无法下载。观察到reset复位键松动。

补发的stm32到了,依旧无法连接到swdio,万用表测得原来的stm32未复位时复位键电位为0.4V,新到的stm32未按下时复位键电位为2V,不过,两个stm32按下复位键都会变为低电平,一直不松就一直为低电平2V。

发现stlink灯无法亮起。也许是stlink坏了,检测stlink晶振,stlink插入电脑测得晶振引脚电压0.06v,断电测电阻。为无穷大。

最后插上单独供电。诶,一下就好了,stlink灯常亮,连接SWDIO成功,下载程序成功,过了一会儿,stlink蓝灯开始闪烁,再次连接不上SWDIO,额......,我猜应该是电压问题,等我研究一下,现在基本断定,问题出在stlink供电上,并且之前万用变测得stm32的VCC和GND之间只有2v,单独供电后就有3.28v。

总的来说,虽然问题还没解决,但过程中也学到了很多知识。我将进一步尝试解决。

将供电线和下载线的usb口对换了一下,再次正常,stlink也不闪烁。

下载进程序后,拔掉stlink,程序依然能运行。

突然发现.....,从开始外接电源那里,BOOT0是置1的,我没注意到,置0后,又连接不到SWDIO了,cao......,至少置1能下载了,哎。

吃完饭回来,重新插上。欸。又可以了,stlink蓝灯常亮,keil里检测到SWDIO。而且boot都为0,yes,解决。文章来源地址https://www.toymoban.com/news/detail-655022.html

到了这里,关于STlink无法下载?解决过程记录。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility

    目录 1 单片机模式配置 1.1 存储器映像 1.2 启动配置 1.3 启动模式选择 1.4 硬件展示 1.4.1 BOOT引脚配置: 1.4.2 USB转TTL 2 FlyMcu串口下载固件         2.1软件配置方式         2.2 选项字节 3 STLINK Utility 3.1 简介 3.2 下载程序流程 通过 设置选择管脚 ,对应到各种启动模式的不

    2024年01月20日
    浏览(58)
  • 0505-stm32的调试工具:vscode下jlink或stlink下载及调试+设置快捷键

    目录 1.1-综述 2-vscode实现一键下载stm32 2.1-jlink的下载与擦除的makefile修改 2.2-stlink的下载与擦除的makefile修改  2.3-提升一点效率:使用tasks.json配置用户任务(下拉菜单) 1-tasks.json干啥用的 2-如何创建tasks.json?  3-tasks.json的文件编辑 4-tasks的使用方法  2.4-再提升一点效率:使用

    2024年02月13日
    浏览(49)
  • STlink烧录一次后就无法在进行烧录解决办法

    使用STlink烧录后,在进行烧录一次后就无法进行连接,并且STM32 ST-LINK Utility出现这种情况,有以下几种解决办法:  1,断电将单片机上的boot1上的跳线帽接到1,此时就可以正常烧录,但是此时的单片机是无法运行程序的,需要将boot1跳线帽继续接到0段才可以,这种方法很麻烦

    2024年02月12日
    浏览(38)
  • stlink 未知usb设备 设备描述符请求失败

    一般是STLINK烧了,可以用STM32的串口下载程序: 只可以用UAART_1:PA9,PA10 需要软件:FlyMcu ① PA9:为TX,要接CH340的RX PA10:为RX,要接CH340的TX ② 再给STM32通电3.3V ③ 设置相同相同波特率,并载入HEX文件 ④ STM32上boot0跳帽接高,并按下复位键,点击开始编程,完成后 ⑤ 跳帽接boot0低

    2024年02月13日
    浏览(44)
  • STLINK下载程序出现cannot access target. shutting down debug session问题解决的一般步骤

    不要觉得只有USB接口线会出问题,排线也有可能出问题。 通过上网搜索得知,查找代码是不是使用了下载的接口 PB3和PB4 I/O口,如果使用了,初始化了的话,需要改为其他 IO 口 有时会出现Cannot Load Flash Programming Algorithm 有时会出现Could not stop Cortex-M device.Please check the JTAG cabl

    2024年02月15日
    浏览(40)
  • 【不识别stlink的解决办法,stlink不识别的解决办法】

    这里以华硕主板b450pro为例:https://www.asus.com.cn/support/Download-Center/ 下载对应的驱动。 https://blog.csdn.net/qq_52102933/article/details/126830904 https://www.zhihu.com/question/21397036

    2024年02月10日
    浏览(117)
  • 《教程》使用STLINK烧录STM32程序

    STM32单片机烧录程序一般需要烧录器,下面介绍如何使用STLINK烧录STM32单片机程序。 1.首先将STLINK与单片机的烧录接口连接好,连接线序如下:   2.然后需要安装STLINK烧录软件,本文采用的是STM32 ST-LINK Utility v4.6.0(获取烧录软件见本文结尾);解压安装包后,点击setup.exe,按照

    2024年02月16日
    浏览(53)
  • STLINK怎么与STM32单片机连接

    STLink是ST官方开发的单片机仿真工具,可以烧写程序、在线仿真,使用非常方便。STLink具有两种接口,分别为:1)SWD模式;2)SWIM单总线模式。SWD模式主要针对STM32系列的单片机,而SWIM单总线主要针对STM8系列的单片机。下面介绍STLINK和STM32单片机的连接方式。l STM32单片机可以通过三

    2024年02月11日
    浏览(52)
  • STLINK CONNECTION ERROR 问题的解决

    打开STLINK UTILITY 连接芯片也连接不上    在settings里面  选择这个连接模式, 按下芯片复位键的同时,点击连接 st_link的灯闪烁红蓝相间的光表示连接成功‘ 松开芯片reset,既连接成功 。 然后将芯片全部擦除 重新插拔stlink 既可以实现在keil中的代码下载 

    2024年02月11日
    浏览(42)
  • 0504-stm32的调试工具:jlink使用详解(使用stlink刷机的jlink)

    jlink的一个特点是速度比较快(50Mz),当然它还有支持芯片比较全的优点,此文章我们讨论jlink在stm32开发中的使用,因为jlink太贵大部分极客不爱买,所以这里使用的是stlink刷的jlink,(针对stm32开发)使用上体验无差。 第二部分介绍使用jlink进行下载测试及对应的命令行测试

    2024年02月06日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包