CubeMX生成的代码烧录一次后无法再烧录(识别)STM32,需按住reset后放开才能烧录

2023-05-16

序言

其实很早就遇见过这个问题,但因为这个问题太小太基础了,就没有做记录。但是过了很久过后再重新回来用CubeMX做STM32开发的时候却总是记不住这点小设置,所以又回来写一下这个。

这个小问题会在不同的软件里引发各式各样不同的报错。大家很多时候都喜欢直接把报错说明拿去百度。本来为了大家检索方便应该把报错都放在这里,但作者也懒,懒得去把每个说明说明复制粘贴到这里,但是如果大家遇到了可以私发给作者,我加在这个后面

一、问题出现的环境

使用CubeMX自动生成HAL库的代码,System Core->SYS->Debug选择的是No Debug

在默认情况下这个选项的选择就是No Debug

二、原因分析

这个设置会导致在生成的stm32f1xx_hal_msp.c文件下的出现以下代码

__HAL_AFIO_REMAP_SWJ_DISABLE();

而这段代码表示禁用JTAG-DP和SW-DP(JTAG-DP和SW-DP是什么这里就不做过多说明了,自行百度)

其实CubeMX生成的注释就有明确的说明,只是一般没事不会去看它而已

三、问题解决

方法一

有以上的分析解决方法也很明显了,改一下System Core->SYS->Debug选择就行。(SWD的话在这里的选择是Serial Wire或者Trace Asynchronous Sw)(代码一样的,详见下文)

这后面四个选项分别会生成以下四种代码,具体是什么注释说得很清晰了,就直接复制粘贴官方注释了

__HAL_AFIO_REMAP_SWJ_NOJTAG();
/*Serial Wire*//** NOJTAG: JTAG-DP Disabled and SW-DP Enabled*/

__HAL_AFIO_REMAP_SWJ_NONJTRST();
/*JTAG(4 pins)*//** NONJTRST: Full SWJ (JTAG-DP + SW-DP) but without NJTRST*/

__HAL_AFIO_REMAP_SWJ_ENABLE();
/*JTAG(5 pins)*//** ENABLE: Full SWJ (JTAG-DP + SW-DP): Reset State*/

__HAL_AFIO_REMAP_SWJ_NOJTAG();
/*Trace Asynchronous Sw*//** NOJTAG: JTAG-DP Disabled and SW-DP Enabled*/

方法二

改设置可以,直接修改stm32f1xx_hal_msp.c下的这段代码也行,注意下次生成的时候可能被覆盖的问题就行了。

四、再次烧录

相信你都来看这个博客了那肯定是遇到了难烧录或者无法烧录的问题了。在这种情况下的烧录比较麻烦,需要有reset按钮或者自行短接

首先需要按住reset按钮再点下载,让其能识别到你的芯片,然后在马上要烧录程序的时候松开reset就行了。需要精准的把控松开的时间,基本上靠感觉是开始1s左右松开,很玄妙,自行把握一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CubeMX生成的代码烧录一次后无法再烧录(识别)STM32,需按住reset后放开才能烧录 的相关文章

随机推荐

  • java实现10种排序算法

    1 冒泡排序 Bubble Sort span class token keyword import span span class token namespace java span class token punctuation spa
  • Java中的Static静态代码块以及各代码块之间的执行顺序

    结论 xff1a 基本上代码块分为三种 xff1a Static静态代码块 构造代码块 普通代码块 代码块执行顺序 xff1a 静态代码块 gt 构造代码块 gt 构造函数 gt 普通代码块 继承中代码块执行顺序 xff1a 父类静态块 g
  • MobaXterm远程连接Linux之网络配置

    配置centos7网络 1 先确定自己要设置的网段是多少 xff1a 我选用网段192 168 91 xxx 我的网关选192 168 91 2 下面的所有网关要和这个相同 xff0c 你们可以完全和我一致 2 配置虚拟网络编辑器 3 虚拟
  • nginx平滑升级(2022.12.13)

    相关视频教程 xff1a https www bilibili com video BV1BK411W7hn 相关文章 xff1a https blog csdn net u012885136 article details 1220549
  • 国王游戏——高精度好题

    题目描述 恰逢 H H国国庆 xff0c 国王邀请 nn 位大臣来玩一个有奖游戏 首先 xff0c 他让每个大臣在左 右手上面分别写下一个整数 xff0c 国王自己也在左 右手上各写一个整数 然后 xff0c 让这 nn 位大臣排成一排 x
  • linux安装curl命令(下载解压安装)(我的是debian版)及常见使用方法

    curl是一款著名的字符界面下的下载工具 xff0c 支持HTTP HTTPS FTP FTPS DICT TELNET LDAP FILE 和GOPHER 此外还具有cookies支持 断点续传 FTP上传 密码支持 SSL支持和代理支持
  • vs2015 驱动程序开发环境配置

    需要满足两个插件即可 xff1a Windows SDKWDK xff08 windows Driver kit xff09 注意 xff1a 两者版本一定要一致 xff08 不考虑最小版本号 xff09 首先安装vs2015 xff0c
  • 操作无法完成因为其中的文件夹或文件已在另一个程序中打开

    在我们删除或者移动文件的时候 xff0c 经常会遇到这种情况 xff0c 然后又找不到在任务管理器打开的程序 xff0c 导致我们无法对文件进行操作 首先我们需要打开任务管理器 xff0c 选择到性能 xff0c 然后点击下面的资源监视器
  • kubeadm 内网离线安装

    离线安装过程 xff0c 仅供参考 xff0c 陆续更新 机器三台 master 为01 slave 为03 04 以下步骤1到7 xff0c 三台都需操作 一 关闭防火墙 二 关闭swap swapoff a 三 关闭selinux se
  • 冒泡排序

    开发工具与关键技术 xff1a Visual Studio2015 撰写时间 xff1a 2019年7月24日 最原始的交换排序思想 xff1a 对待排序序列中的记录两两比较其关键字 xff0c 发现两个记录呈现逆序时就交换两记录的位置 x
  • 2023知识追踪最新综述来自顶刊!!!——《Knowledge Tracing:A Survey》

    Knowledge Tracing xff1a A Survey 论文在2023年2月收录于ACM Computing Surveys xff08 IF好像有14 xff09 后文里 xff0c 我用技能一词 来 代替原文中的KC know
  • 关于Ubuntu18.04安装Coreform Cubit出现Segmentation fault (core dumped)问题的解决

    Ubuntu18 04只能安装旧版本的Trelis 17 01 xff0c 其他版本不支持
  • 长江游艇俱乐部租金问题

    题目来源 xff1a 王晓东 xff0c 算法设计与分析 长江游艇俱乐部在长江上设置了n个游艇出租站1 xff0c 2 xff0c xff0c n 游客可在这些游艇出租站租用游艇 xff0c 并在下游的任何一个游艇出租站归还游艇 游艇出租站
  • Week4--CSP模拟--C - 可怕的宇宙射线

    文章目录 题目描述输入输出样例输入样例输出思路综述剪枝条件 xff08 满足以下条件 xff0c b点之后的可以忽略 xff09 xff1a 如何建立二维地图记忆化搜索需要的数组方向表示 过程Step1 xff1a Step2 xff1a
  • visualStudio断点报错:当前不会命中断点。还没有为该文档加载任何符号

    原因 xff1a 当前调试的程序和工作目录中的符号表pdb不匹配 符号表 pdb与断点调试 符号表是将编译链接后生成的可执行文件 xff08 exe xff09 和源码做出的一个映射表 xff0c 其中存储的是全局变量 函数的名字和地址 x
  • leetcode 941. 有效的山脉数组

    给定一个整数数组 A xff0c 如果它是有效的山脉数组就返回 true xff0c 否则返回 false 让我们回顾一下 xff0c 如果 A 满足下述条件 xff0c 那么它是一个山脉数组 xff1a A length gt 61 3
  • Java面向对象-继承

    Java继承的概念与实现 继承是Java面向对象编程技术的一块基石 xff0c 因为它允许创建分等级层次的类 继承是类与类之间的关系 xff0c 是一个很简单很直观的概念 xff0c 与现实世界中的继承 xff08 例如儿子继承父亲财产 x
  • 【IT-Windows】某些设置由你的组织来管理

    方法一 xff1a 1 xff0c 桌面右击 此电脑 xff0c 在右键菜单选择 属性 选项 p1 win10更新取消组织管理图 2 xff0c 在打开的 系统 窗口 xff0c 点击计算机名右边的 更改设置 选项 p2 某些设置有你的组织
  • Debian各个依赖包下载地址

    https packages debian org bullseye amd64 libcrypt1 udeb download https packages debian org bullseye amd64 gcc 10 base do
  • CubeMX生成的代码烧录一次后无法再烧录(识别)STM32,需按住reset后放开才能烧录

    序言 其实很早就遇见过这个问题 xff0c 但因为这个问题太小太基础了 xff0c 就没有做记录 但是过了很久过后再重新回来用CubeMX做STM32开发的时候却总是记不住这点小设置 xff0c 所以又回来写一下这个 这个小问题会在不同的软