使用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
英文地址,請注明出處:http://en.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 年)》,全面剖析了云計算領域的發展現狀與未來趨勢。在人工智能蓬勃發展的當下,云計算正從基礎資源供給向智能時代的核心引擎加速轉變,成為重塑全球數字競…