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

使用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.lryc.cn/news/600883.html

相关文章:

  • 在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
  • Flutter控件归纳总结
  • 面试150 IPO
  • 达梦[-2894]:间隔表达式与分区列类型不匹配
  • 大语言模型困惑度:衡量AI语言能力的核心指标
  • Windows Server容器化应用的资源限制设置
  • 小白成长之路-部署Zabbix7(二)
  • Word文档试卷处理新方案:答案提取与格式化一键完成
  • MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡
  • python面向对象编程详解
  • Django+celery异步:拿来即用,可移植性高
  • go-admin 构建arm镜像
  • (LeetCode 面试经典 150 题) 20. 有效的括号 (栈)
  • Ubuntu 18.04安装Fast-Lio2教程
  • MySQL进阶学习与初阶复习第三天
  • Windows11下和Vmware中的Ubuntu22.04设置samba服务遇到的一个问题- valid users和guest设置冲突
  • 单元测试、系统测试、集成测试知识详解
  • 深入解析命名管道:原理、实现与进程间通信应用
  • 大型微服务项目:听书——12 数据一致性自定义starter封装缓存操作
  • 2025年全国青少年信息素养大赛Scratch算法创意实践挑战赛 小低组 初赛 真题
  • Fast_Lio 修改激光雷达话题
  • C++核心编程学习--对象特性--对象模型和this指针
  • 在C#中判断两个列表数据是否相同
  • 服务器:数字世界的隐形引擎
  • C++ - 仿 RabbitMQ 实现消息队列--服务端核心模块实现(四)
  • 「iOS」————继承链与对象的结构
  • 数据结构 二叉树(3)---层序遍历二叉树
  • 系统性提升大模型回复准确率:从 RAG 到多层 Chunk 策略
  • 机器学习特征工程:特征选择及在医学影像领域的应用
  • 【AI】联网模式