当前位置: 首页 > news >正文

真.从“零”搞 VSCode+STM32CubeMx+C <2>调试+烧录

目录

前言

准备工作

Daplink连接

调试配置(cortex-debug)

烧录配置

坑点


前言

      昨天有惊无险的构建了一个简单的闪灯程序,今天来挑战下调试+烧录,看看有什么坑。

准备工作

  • OpenOCD下载:openocd-xpack
  • Daplink调试器

Daplink连接

  • 接线,如下

Daplink         单片机

TCK/CK ----- SWCLK

TMS/IO  ----- SWIO

3.3v        ----- 3.3v

GND       ----- GND

  • 插上电脑,直接会识别(我的是windows10)

调试配置(cortex-debug)

  • 需要提前安装好cortex-debug插件,并添加launch.json配置文件,这里需要注意.cfg要配置成符合自己单片机的,文件在openocd的“openocd\scripts\target”路径下

  • 插件不会帮助你安装openocd需要自己下载,并配置环境变量,配置完之后,务必关闭VSCode,再重新打开
  • 配置完成后,就可以直接点击上图中左上方的运行按钮,程序会自动烧录到单片机中,并可执行断点调试。

烧录配置

  • 如果不需要调试,那直接配如下所述的就可以了

  • 点击开发工具右上方的烧录按钮,即可完成烧录

异常解决

  • 今天相对比较顺利,遇到两个问题,一是VSCode始终读不到配置好的openocd的环境变量,重启多次后可以了;二是调式报错以及无法烧录程序,这个问题比较刁钻,多种报错信息:
Output radix now set to decimal 10, hex a, octal 12.
Input radix now set to decimal 10, hex a, octal 12.
0x0800025e in HAL_MspInit () at ./Core/Src/stm32f1xx_hal_msp.c:77
77	  __HAL_AFIO_REMAP_SWJ_DISABLE();
Program stopped, probably due to a reset and/or halt issued by debugger
[stm32f1x.cpu] halted due to debug-request, current mode: Thread 
xPSR: 0x01000000 pc: 0x0800016c msp: 0x20000660
[stm32f1x.cpu] halted due to breakpoint, current mode: Thread 
xPSR: 0x01000000 pc: 0x08000c34 msp: 0x20005000
Error connecting DP: cannot read IDRProgramstopped.
0x00000000 in ?? ()
Error: Error connecting DP: cannot read IDR
Error: [stm32f1x.cpu] Polling failed, trying to reexamine
Error: [stm32f1x.cpu] Examination failed
Error: [stm32f1x.cpu] Examination failed, GDB will be halted. Polling again in 300ms
Error: Error connecting DP: cannot read IDR
Error: Failed to read memory and, additionally, failed to find out where
Error: Error connecting DP: cannot read IDR

解决:

原来是STM32CubeMx生成代码的时候,有一行禁止调试的代码:

注释掉!即可!重新构建。

  • 但我们之前的程序已经烧录,怎么办?考研手速的时候到了!用单片机上的Reset按钮,按住,点烧录,看到成功连接OCD后立刻松开,便可以正常烧录了。
  • 由于这行代码是STM32CubeMx生成的,下次有什么引脚变化,还得用他生成,那么就需要直接一下,让它不要生成,如下:

后记

      又是有惊无险的一通瞎操作,接下来要开始进入此次旅程的核心 → 用Make编译出bin文件,并烧录到单片机中。

相关文章:

  • 力扣-234.回文链表
  • 黑马Redis(三)黑马点评项目
  • 【HTTP/3:互联网通信的量子飞跃】
  • 【QQmusic自定义控件实现音乐播放器核心交互逻辑】第三章
  • OpenHarmony - 小型系统内核(LiteOS-A)(十),魔法键使用方法,用户态异常信息说明
  • git版本回退 | 远程仓库的回退 (附实战Demo)
  • 从零开始掌握Linux数据流:管道与重定向完全指南
  • 支持Function Call的本地ollama模型对比评测-》开发代理agent
  • 工业排风轴流风机:强劲动力与节能设计的完美融合
  • websheet 之 VUE使用
  • 基于 Netmiko 的网络设备自动化操作
  • 【器件专题1——IGBT第2讲】IGBT 基本工作原理:从结构到特性,一文解析 “电力电子心脏” 的核心机制
  • 人工智能与机器学习:Python从零实现性回归模型
  • react和vue的区别之一
  • 【Mybatis】MyBatisPlus的saveBatch真的是批量插入吗?深度解析与性能优化
  • 全球玻璃纸市场深度洞察:环保浪潮下的材料革命与产业重构(2025-2031)
  • 算法 | 基于SSA-CNN-LSTM(麻雀算法优化卷积长短期记忆神经网络)的股票价格预测(附完整matlab代码,公式,原理,可用于毕业论文设计)
  • 【持续更新】 CDC 跨时钟域处理
  • 解读《数据资产质量评估实施规则》:企业数据资产认证落地的关键指南
  • 数据挖掘技术与应用课程论文——数据挖掘中的聚类分析方法及其应用研究
  • 波兰斯基最新回忆录追述“二战”童年往事
  • AI世界的年轻人|他用影像大模型解决看病难题,“要做的研究还有很多”
  • 中国金茂向滨江集团提供11.21亿元诚意金借款,拟合作开发3月获取的地块
  • 家政阿姨如何炼成全国劳模?做饭、收纳、养老、外语样样都会
  • 国新办发布《关于新冠疫情防控与病毒溯源的中方行动和立场》白皮书
  • 青海西宁市城西区副区长于媛媛主动投案,接受审查调查