CLion社區免費后,使用CLion開發STM32相關工具資源匯總與入門教程

Clion下載與配置

Clion推出社區免費,就是需要注冊一個賬號使用,大家就不用去找破解版版本了,jetbrains家的IDEA用過的都說好,這里嵌入式領域也推薦使用。
在這里插入圖片描述
CLion官網下載地址
安裝沒有什么特別,下一步就好。
啟動登錄賬號,選擇社區免費即可。
創建一個項目,這里選擇STM32CubeMX選項,如下圖
在這里插入圖片描述
這里需要3個工具依賴,地址都放好了,方便大家下載。
Stm32CLT下載
Stm32CubeMX下載
OpenOCD下載
下載完成后,選擇相應路徑就好了。
根據CLion給的注釋可以很容易的創建一個項目。
在這里插入圖片描述
注意項目路徑和項目名稱要保持一致。
這里我是用一個串口調試工程來驗證。
開啟SW調試:
在這里插入圖片描述

開啟串口:
在這里插入圖片描述
這里加入printf重定向代碼,方便后面打印

#ifdef __GNUC__
/* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printfset to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ *//*** @brief  Retargets the C library printf function to the USART.* @param  None* @retval None*/
PUTCHAR_PROTOTYPE
{HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, HAL_MAX_DELAY);return ch;
}

時鐘配置:
在這里插入圖片描述
生成代碼:
在這里插入圖片描述

編譯與運行

項目創建完成后,需要進行下一步的配置,這里配置不復雜。
這里先配置CMake相關。
在這里插入圖片描述
選擇Debug和Release都啟用。
在這里插入圖片描述
點擊Build按鈕,進行編譯在這里插入圖片描述
在這里插入圖片描述
編譯成功后,如何下載呢,這里需要配置OpenOCD,這里我使用的是STLink下載器,其他的也都類似。打開配置頁
在這里插入圖片描述
新建一個OpenOCD的配置項,這一步是為了配置下載器相關的參數
在這里插入圖片描述

在這里插入圖片描述
點輔助可以讀取預設的模板文件,這里我用的stm32h743,所以我選擇一個近似的cfg文件,復制到項目中。
在這里插入圖片描述
文件內容:
把最后一行刪除,重啟這里有點問題
在這里插入圖片描述
這時選擇選擇新建的OCD配置項,點擊綠色運行按鈕即可下載。
在這里插入圖片描述
下載完成
在這里插入圖片描述

Debug模式

調試模式下,是用debug按鈕,進入斷點調試,
在這里插入圖片描述
這里可以查看調用棧,變量等信息。
在這里插入圖片描述
外設這里也可以看到每一個寄存器的信息,很方便。
在這里插入圖片描述第一次打開,由于沒有關聯SVD文件,會提示你加載一下SVD文件,這里找到STM32CubeCLT_1.18.0的安裝目錄,然后找到MCU對應的SVD文件即可。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83460.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Rust 學習筆記:關于 Cargo 的練習題

Rust 學習筆記:關于 Cargo 的練習題 Rust 學習筆記:關于 Cargo 的練習題問題一問題二問題三問題四問題五問題六問題七 Rust 學習筆記:關于 Cargo 的練習題 參考視頻: https://www.bilibili.com/video/BV1xjAaeAEUzhttps://www.b…

高速收發器

一、高速收發器 1.FPGA高速收發器:GTP,GTX,GTH,GTZ 2.每個Quad有4對高速收發器GT(4個TX和4個RX)和一個COmmon 3.走差分,提高抗干擾性 4.CPLL是每個lane私有的,QPLL是整個Quad的所有通道共享的 5.每個MGT的bank有兩對差分參考時鐘 6.CPLL的時鐘…

Rust 變量與可變性

文章目錄 變量與可變性常量遮蔽(Shadowing) 變量與可變性 Rust中變量默認是不可變的,這是 Rust 鼓勵你編寫更安全、易于并發代碼的眾多方式之一。不過,你仍然可以選擇讓變量可變。讓我們來探討 Rust 為什么鼓勵你優先使用不可變性…

sourcetree無法獲取遠程所有的tag

2025年5月29日11:30:17 sourcetree widnwos v3.4.23版本 突然發現線上的代碼庫里有很多新打的tag,但是sourcetree死活無法拉去所有的tag,嘗試卸載重新安裝也不行,全網也找了還是不知道,但是mac版本好像沒有這個問題 方法1&…

《深度探索C++對象模型》閱讀筆記(完整版)

《深度探索C對象模型》閱讀筆記(完整版) 文章目錄 《深度探索C對象模型》閱讀筆記(完整版)1. 關于對象(Object Lessons)1.1 C對象模型(The C Object Model)1.1.1 語言中的對象模型1.…

從Docker拉取鏡像一直失敗超時解決辦法

項目場景: 在ubuntu中,使用docker拉去鏡像時,一直超時,拉去失敗。 問題描述 原因分析: 國外服務器網絡不好導致。 解決方案: 解決方案1 設置國內源 我這邊測試,更改以后仍然失敗 阿里云提供…

KONG根據請求參數限流

背景 價格接口 /search 同時支持緩存查價和實時查價,主要通過searchType字段區分這兩種請求。 searchType 為空時為緩存查價,QPS很高。searchType 不為空時為實時查價,但QPS遠低于普通查價。 如果直接對該接口限流,當流量波動超…

通俗易懂解析:@ComponentScan 與 @MapperScan 的異同與用法

在 Spring 和 MyBatis 集成開發中,ComponentScan 和 MapperScan 是兩個核心注解,但它們的用途和工作機制截然不同。本文將通過通俗的語言和示例代碼,帶您輕松掌握它們的區別和使用方法。 一、基礎概念 ComponentScan:Spring 的“通…

39. 自動化異步測試開發之編寫異步業務函數、測試函數和測試類(函數寫法)

39. 自動化異步測試開發之編寫異步業務函數、測試函數和測試類(函數寫法) 一、異步業務函數解析 1.1 頁面導航函數 async def get(async_driver, url: str http://secure.smartbearsoftware.com/samples/testcomplete12/WebOrders/Login.aspx):await…

Qt 無邊框窗口實現拖動與窗口控制(最小化/最大化/關閉)

在 Qt 中,使用 Qt::FramelessWindowHint 可以創建無邊框窗口,但這樣會導致窗口無法拖動,并且系統默認的標題欄按鈕(最小化、最大化、關閉)也會消失。本文將介紹如何實現無邊框窗口的鼠標拖動功能,并添加自定…

Linux中的System V通信標準-共享內存、消息隊列以及信號量

在Linux系統中,System V IPC(Inter-Process Communication)提供了一系列進程間通信的機制,包括共享內存、消息隊列和信號量。這些機制在系統中發揮了重要作用,幫助進程之間進行數據交換和同步。本文將詳細介紹這些機制…

postman工具使用

基本功能操作 常用斷言 定義:postman 斷言借助 JavaScript - js 語言編寫代碼,自動判斷預期結果與實際結果是否一致。( 注意斷言 代碼寫在 Tests 的標簽中) 斷言響應狀態碼 斷言響應體是否包含某個字符串(Response bo…

VBA數據庫解決方案二十:Select表達式From區域Where條件Order by

《VBA數據庫解決方案》教程(版權10090845)是我推出的第二套教程,目前已經是第二版修訂了。這套教程定位于中級,是學完字典后的另一個專題講解。數據庫是數據處理的利器,教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法…

算法-集合的使用

1、set常用操作 set<int> q; //以int型為例 默認按鍵值升序 set<int,greater<int>> p; //降序排列 int x; q.insert(x); //將x插入q中 q.erase(x); //刪除q中的x元素,返回0或1,0表示set中不存在x q.clear(); //清空q q.empty(); //判斷q是否為空&a…

C++文件和流基礎

C文件和流基礎 1. C文件和流基礎1.1 文件和流的概念1.2 標準庫支持1.3 常用文件流類ifstream 類ofstream 類fstream 類 2.1 打開文件使用構造函數打開文件使用 open() 成員函數打開文件打開文件的模式標志 2.2 關閉文件使用 close() 成員函數關閉文件關閉文件的重要性 3.1 寫入…

Maven---配置本地倉庫

目錄 5. 5.1在Maven路徑下新建文件夾用于本地倉庫存儲 5.2 復制本地倉庫路徑 5.3 找到配置文件路徑&#xff0c;使用VSCode方式打開 5.4 新增一行代碼 5.5 復制本地倉庫路徑&#xff0c;設置存儲路徑 5.1在Maven路徑下新建文件夾用于本地倉庫存儲 5.2 復制本地倉庫路徑 5…

Vue3 + Element Plus + TypeScript 中 el-cascader 實現模擬用戶點擊功能

模擬點擊&#xff0c;調用 el-cascader 的公開方法 togglePopperVisible 來展開下拉框 MaterialOut.vue <script setup lang"ts" name"MaterialOut"> ...... import { ElMessage, type ElCascader } from "element-plus";// 級聯組件實例…

新能源汽車與油車銷量

中國油車與新能源車銷量對比&#xff08;2022-2025年&#xff09; ?1. 市場份額演化&#xff08;2022-2025年&#xff09;? ?年份? ?新能源車銷量 &#xff08;滲透率&#xff09;? ?燃油車銷量 &#xff08;滲透率&#xff09;? ?關鍵事件? ?2022? 688.7萬輛…

C++ list代碼練習、set基礎概念、set對象創建、set大小操作

對應力扣&#xff0c;回文鏈表&#xff0c;代碼見下 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, …

前端面試寶典---前端水印

明水印 1. 背景圖 通過css的background-image加載背景圖 2. canvasbackground水印 前端水印實現思路與示例代碼 一、核心實現思路 Canvas動態生成水印 通過Canvas繪制文本或圖案&#xff0c;將生成的圖像轉為Base64格式&#xff0c;作為背景圖重復平鋪到目標元素上。例如&…