使用Clion开发STM32(Dap调试)

使用Clion开发STM32

  • 环境配置
  • ST-Link无法下载
  • OpenOCD
    • ST-Link调试
    • Dap-Link调试
  • Debug配置
  • 查看寄存器值

之前写了一篇文章关于如何用VSCode配合EIDE插件开发STM32

最近研究了如何使用Clion开发STM32

环境配置

使用Clion开发STM32需要用到4个工具:Clion、STM32CubeMX、STM32CubeCLT、OpenOCD

以下是下载链接

Clion下载
STM32CubeMX
STM32CubeCLT
OpenOCD

下面是详细的教程,一般来说跟着下面的视频教程来做都能成功,我这里额外补充使用OpenOCD进行烧录和调试,支持 ST-LinkDap-Link

详细教程

ST-Link无法下载

下面是我遇到的问题

在烧录时报了下面的错误,原因可能是没有识别到目标芯片,连接线松了,还有一个原因是ST-Link的版本太低了,需要升级,下面是解决办法

在这里插入图片描述

使用STM32CubeIDE自带的ST-Link升级工具对ST-Link进行升级

在这里插入图片描述
在这里插入图片描述

OpenOCD

上面的视频中使用的是ST-Link进行烧录调试,但是我平时使用更多的是Dap,所以我需要额外下载OpenOCD

在这里插入图片描述

下载完成后解压到C盘的Program Files中

在这里插入图片描述

将文件的 bin 路径添加到环境变量中

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后复制可执行文件的路径

在这里插入图片描述

打开Clion-文件-设置

在这里插入图片描述

构建、执行、部署-嵌入式开发

将路径粘贴到OpenOCD位置,点击测试,出现下图绿色文字说明没有问题

在这里插入图片描述

找到运行/调试配置,编辑配置

在这里插入图片描述

添加 OpenOCD 下载并运行

在这里插入图片描述

ST-Link调试

使用ST-Link调试的话跟视频中的一样,调试服务器选择ST-Link就可以了

在这里插入图片描述

Dap-Link调试

使用Dap-Link进行调试需要额外添加一个配置文件

在工程目录空白处 右键-新建-文件

在这里插入图片描述

命名为 daplink.cfg

在这里插入图片描述

然后将下面的内容粘贴进去,保存

在这里插入图片描述

# choose st-link/j-link/dap-link etc.
adapter driver cmsis-dap
transport select swd# 0x10000 = 64K Flash Size
set FLASH_SIZE 0x20000source [find target/stm32f4x.cfg]# download speed = 10MHz
adapter speed 10000

接着对OpenOCD调试配置进行编辑

在这里插入图片描述

将原来的面板配置文件改为刚刚创建的配置文件

在这里插入图片描述

确定

在这里插入图片描述

然后将调试服务器改为 原生,这时候点击运行

在这里插入图片描述

出现以下信息说明烧录成功

在这里插入图片描述

配置过一次后,以后创建工程就方便很多了,下面是具体步骤

打开CubeMX

在这里插入图片描述

配置好

在这里插入图片描述
在这里插入图片描述

复制项目路径

在这里插入图片描述

将daplink的配置文件复制到新工程目录下

在这里插入图片描述

在这里插入图片描述

修改配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后选择对应的调试器即可

在这里插入图片描述

最后编写完代码运行即可

在这里插入图片描述

Debug配置

完成以上步骤可以进行基本的代码编写、烧录,如果要调试的话,还要进行下面的步骤

在这里插入图片描述
在这里插入图片描述

查看OpenOCD的GDB端口号,我的是3333

在这里插入图片描述

target remote 输入 localhost:3333
GDB服务器选择OpenOCD的路径
GDB服务器实参 输入 -f interface/cmsis-dap.cfg -f target/stm32f4x.cfg

如果使用的是ST-Link,则输入-f interface/stlink-v2.cfg -f target/stm32f4x.cfg

在这里插入图片描述

最后点确定

点击这个小乌龟进行Debug

在这里插入图片描述

下面是效果演示

请添加图片描述

查看寄存器值

由于Clion不是专门为STM32开发的软件,所以要想查看寄存器的值,还需要下载额外的东西

到STM32官网,搜索STM32F4 SVD,选择STM32F4 System View Description下载

在这里插入图片描述

同样的,将下载好的文件解压放到C盘的Program File中

在这里插入图片描述

回到Clion,点击外设,加载.svd文件,需要在调试状态中才能进行加载

在这里插入图片描述

选择刚刚下载好的svd文件中的对应芯片信号的.svd文件,路径如下所示,然后点击确定

在这里插入图片描述

这时候所有的外设都可以选择

在这里插入图片描述

例如我这里选择 GPIOE

在这里插入图片描述

这时候就可以查看该寄存器里面每一个值了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90616.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能-python-OpenCV 中 `release()` 和 `destroy()` 的区别

文章目录OpenCV 中 release() 和 destroy() 的区别1. release()常见使用场景:代码示例:作用:2. destroy()常见使用场景:代码示例:作用:3. 总结:4. 何时使用小结:OpenCV 中 release()…

[RPA] 日期时间练习案例

案例1根据日期拆分表格根据表格中不同日期,创建多个对应日期名称的Sheet页(名称格式为"yyyy-mm-dd"),并将同一日期的订单拷贝至对应Sheet页日期时间练习题1.xlsx流程搭建:实现效果:

2025.7.27文献阅读-基于深度神经网络的半变异函数在高程数据普通克里金插值中的应用

2025.7.27周报一、文献阅读题目信息摘要创新点实验一、半变异函数拟合二、普通克里金插值三、结果对比分析四、实验结果结论不足以及展望一、文献阅读 题目信息 题目: Application of a semivariogram based on a deep neural network to Ordinary Kriging interp…

用unity开发教学辅助软件---幼儿绘本英语拼读

记录完整项目的制作,借鉴了大佬被代码折磨的狗子 “unity创建《找不同》游戏 图片编辑器”一文。 (建议通过目录阅读本文哦~) 项目演示: 幼儿英语教辅幼儿英语绘本教学游戏整体架构 游戏开发中设计的整体框架 游戏的总体功能框架…

《Java 程序设计》第 5 章 - 数组详解

引言在 Java 编程中,数组是一种基础且重要的数据结构,它允许我们将多个相同类型的元素存储在一个连续的内存空间中,通过索引快速访问。掌握数组的使用是学习 Java 集合框架、算法等高级知识的基础。本章将从数组的创建、使用开始,…

基于Spring Boot的可盈保险合同管理系统的设计与实现(源码+论文)

一、相关技术 技术/工具描述SSM框架在JavaWeb开发中,SSM框架(Spring Spring MVC MyBatis)是流行的选择。它既没有SSH框架的臃肿,也没有SpringMVC的简化,属于中间级别,更灵活且易于编写和理解。MyBatis框…

​​XSLT:XML转换的“魔法棒”​

大家好!今天我们来聊聊 ​​XSLT​​(Extensible Stylesheet Language Transformations),一种用于转换和呈现XML文档的神奇工具。如果你曾需要将一堆枯燥的XML数据变成精美的HTML网页、PDF报告,或其他XML格式&#xff…

面试实战,问题十,如何保证系统在超过设计访问量时仍能正常运行,怎么回答

如何保证系统在超过设计访问量时仍能正常运行 在Java面试中,当被问及如何保证系统在访问量激增(例如从100万用户增长到200万)时仍能稳定运行,这是一个考察高并发、可扩展性和容错能力的关键问题。核心在于通过架构设计、性能优化和…

DMDSC安装部署教程

一、环境准备 虚拟机准备,添加共享磁盘 (1)共享存储规划 裸设备名 容量 用途 /dev/sdb 10 G /dev/asmdata0(数据磁盘) /dev/sdc 5 G /dev/asmdcr(DCR 磁盘) /dev/sdd 5 G /dev/asm…

半导体 CIM(计算机集成制造)系统

半导体CIM(Computer Integrated Manufacturing,计算机集成制造)系统是半导体制造的“神经中枢”,通过整合硬件设备、软件系统和数据流转,实现从订单到成品的全流程自动化、信息化和智能化管理。其工作流程高度贴合半导…

AI是否会终结IT职业?深度剖析IT行业的“涌现”与重构

引言:一场不可回避的技术审判在ChatGPT、Copilot、Claude、Sora 等AI技术密集爆发的今天,IT行业首当其冲地感受到这股浪潮带来的“智力替代压力”。尤其是以开发、测试、运维、分析为主的岗位,逐渐被AI所“渗透”。于是,问题摆在每…

mid360连接机载电脑,远程桌面连接不上的情况

为什么会出现这种情况呢,一开始我以为是雷达使用的网线,使用的是和网络同样的口,是因为机载电脑带宽不足,所以导致的,但是后面发现不管是哪一个机载电脑都会断开连接,后面了解得知,并不是连接的…

目标检测系列(六)labelstudio实现自动化标注

一、启用图片文件服务用Nginx启用图片服务,配置好映射路径。新建图片文件夹,将文件夹下的图片路径存储到txt文件中访问地址(文件夹):http://112.12.19.122:8081/urls/ml-backend-test/进入labelstudio将txt文件路径填入…

从零开始大模型之编码注意力机制

从零开始大模型之编码注意力机制1 长序列建模中的问题2 使用注意力机制捕捉数据依赖关系3 自注意力机制4 实现带可训练权重的自注意力机制5 利用因果注意力隐藏未来词汇6 将单头注意力扩展到多头注意力7 Pytorch附录7.1 torch.nn.Linear多头掩码可训练权重的注意力机制。为什么…

小架构step系列26:Spring提供的validator

1 概述对于Web服务,需要对请求的参数进行校验,可以对不合法的参数进行提示,提高用户体验。也可以防止有人恶意用一些非法的参数对网站造成破坏。如果是对每个参数都写一段代码来判断值是否合法,那校验的代码就很多,也很…

0编程基础:用TRAE写出了会蹦跳躲避散发炫光的贪吃蛇小游戏

在某个深夜的代码深渊里,一个从未写过print("Hello World")的小白开发者,竟用自然语言指令让贪吃蛇跳起了"光棱华尔兹"——蛇身折射出彩虹轨迹,食物像星舰般自动规避追击,甚至实现了四头蛇的"量子纠缠式…

在Word和WPS文字中要同时查看和编辑一个文档的两个地方?拆分窗口

如果要在Word或WPS文字的长文档中同时查看两部同步的地方(文档位置),来回跳转和滚动费时费力,使用拆分窗口的功能即可搞定。将窗口一分为二,上下对照非常方便。一、拆分窗口的路径Word和WPS基本一样,就是菜…

Windows系统下安装mujoco环境的教程【原创】

在学习Mujoco仿真的过程中,我先前是在linux系统下进行的研究与学习,今天来试试看在windows系统中安装mujoco仿真环境。 先前在linux中的一些关于mujoco学习记录的博客:Mujoco仿真【xml文件的学习 3】_mujoco打开xml文件-CSDN博客 下面开始wi…

CSS中篇

#Flex布局#1、什么是flex布局?flex 布局,全称弹性布局(Flexible Box Layout),是 CSS3 中引入的一种新的布局模式。它主要通过给容器设置相关属性,来控制容器内部子元素的排列方式。相比传统的浮动布局和定位…

《云计算蓝皮书 2025 》发布:云计算加速成为智能时代核心引擎

近日,中国信息通信研究院发布了《云计算蓝皮书(2025 年)》,全面剖析了云计算领域的发展现状与未来趋势。在人工智能蓬勃发展的当下,云计算正从基础资源供给向智能时代的核心引擎加速转变,成为重塑全球数字竞…