CT117E-M4 CubeMX與Keil5 MDK-ARM基礎配置

目錄

1.CubeMX構建項目

2.芯片時鐘配置

2.1 芯片引腳配置

?2.2 時鐘樹配置

3.調試接口配置

4.項目管理器Project Manager配置

4.1 project

4.2 Code Generator

5. 生成代碼

6.MDK_ARM配置

6.1 編譯器選擇

?6.2?調試器配置

7. 創建本地代碼文件夾

8. #include 路徑設置


1.CubeMX構建項目

? ? ? ? 打開CubeMX后,可以從如下兩個選項選擇任一個進行創建項目:

? ? ? ? 在1處輸入框輸入STM32G431RB,選擇該芯片。再根據2處,選擇第二個芯片型號。隨后3處,點擊Start Project。

?????????此時進入芯片配置界面:

2.芯片時鐘配置

2.1 芯片引腳配置

????????(1)點擊System Core

? ? ? ? (2)點擊RCC(Reset and Clock Control,復位和時鐘控制模塊)

?????????(3)選擇高速時鐘HSE

?????????(4)選擇Crystal/Ceramic Resonator(晶振/陶瓷諧振器)

?????????(5)芯片PF0引腳被自動設置為RCC_OSC_IN外部時鐘輸入、PF1引腳為RCC_OSC_OUT外部時鐘輸出

?2.2 時鐘樹配置

? ? ? ? (1)時鐘輸入頻率設置為24MHZ。因為官方用戶手冊中7.1節的晶振頻率為24MHZ。

? ? ? ? (2)選擇HSE

? ? ? ? (3)選擇PLLCLK,使HSE生效。

? ? ? ? (4)將HCLK處改為80MHZ。輸入后回車,使配置生效。

3.調試接口配置

? ? ? ? 在SYS中?,Debug選擇Serial Wire(串行調試)。

4.項目管理器Project Manager配置

4.1 project

? ? ? ? (1)項目名不能有中文

? ? ? ? (2)項目路徑不能有中文

? ? ? ? (3)IDE選擇MDK-ARM。之后在?MDK-ARM中編寫代碼。

4.2 Code Generator

? ? ? ? ?勾選Generate peripheral initialization as a pair of '.c/.h' files per peripheral,為外圍設備也就是單片機,基于在CuberMX中的配置,生成初始化的.c/.h文件。

5. 生成代碼

? ? ? ? 點擊generate code,生成代碼。

? ? ? ? Open Folder,可以打開創建的CubeMX項目所在目錄:

? ? ? ? ?其中,MDK-ARM目錄存放著MDK-ARM工程文件。

6.MDK_ARM配置

? ? ? ? ? ? ? ? 打開MDK-ARM工程。其中最重要的就是main.c主程序。

?6.1 編譯器選擇

? ? ? ? 按照如下順序,選擇版本6。本人的版本5不可以。?

6.2?調試器配置

?????????選擇CMSIS-DAP Debugger。CMSIS-DAP(Cortex Microcontroller Software Interface Standard - Debug Access Port) 是 ARM 定義的 開源調試接口協議,允許調試器通過 USB 連接到目標 MCU,并通過 SWD/JTAG 進行調試和下載程序。

? ? ? ? 再按照上圖對調試器進行配置,使其將程序下載到單片機中后,自動reset并運行程序。?

7. 創建本地代碼文件夾

? ? ? ? 在CubeMX工程目錄下創建BSP文件夾,用于存放個人編寫以及修改過的官方驅動文件,便于最終提交結果。?

?????????同時在MDK-ARM中創建對應的BSP文件夾,將CubeMX工程目錄下創建BSP文件夾中的文件添加到這里,方便在MDK-ARM中編寫代碼。

8. #include 路徑設置

? ? ? ? 我們編寫的.h/.c文件在CubeMX工程目錄下的BSP文件夾,直接在main.c中引用會報錯,程序不知道BSP文件夾。所有將BSP文件夾路徑添加到MDK-ARM的引用路徑:

? ? ? ? 找到BSP文件夾所在位置,將其添加到include paths。?

? ? ? ? 本本篇到此結束,下篇記錄點亮LED過程。

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

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

相關文章

MySQL中有哪幾種鎖?

大家好,我是鋒哥。今天分享關于【MySQL中有哪幾種鎖?】面試題。希望對大家有幫助; MySQL中有哪幾種鎖? 1000道 互聯網大廠Java工程師 精選面試題-Java資源分享網 在MySQL中,鎖是用來控制并發訪問的機制,確…

MongoDB 和 Elasticsearch的區別、優缺點對比,以及選型建議

MongoDB 和 Elasticsearch 在存儲和搜索方面各有特點,適用于不同的場景。以下是它們的區別、優缺點對比,以及選型建議。 1. 概述 MongoDB:分布式 NoSQL 文檔數據庫,基于 BSON(類似 JSON)的文檔存儲&#x…

55.HarmonyOS NEXT 登錄模塊開發教程(九):部署與發布

溫馨提示:本篇博客的詳細代碼已發布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下載運行哦! HarmonyOS NEXT 登錄模塊開發教程(九):部署與發布 效果預覽 1. 引言 在前八篇教程中,我們介紹了H…

vue3實現跨頁面緩存

避免頻繁向后端發送請求,vue3中,可以用緩存機制,為了實現跨頁面緩存,可以把緩存放到localsotrage里面 關鍵代碼: const globalCache JSON.parse(localStorage.getItem(globalCache)) || {}; 然后加一個forceRefresh關鍵字, const fetchData async (forceRefresh false) …

c++類和對象(下篇)上

今天又重新回到c的學習中~在前兩篇博客中,我簡單的學習了類的定義,實例化,以及類中的默認成員函數.下篇是類和對象的收尾篇,在這篇中我將補充一下中篇所講的構造函數以及介紹一些類和對象的新知識.下面讓我們開始學習吧. 再談構造函數 在之前我們實現構造函數時,初始化成員變量…

深度學習 bert流程

Token IDs 在自然語言處理任務中,特別是使用預訓練模型如BERT時,文本首先通過一個分詞器(例如 BertTokenizer)轉換為一系列的token IDs。這些ID是每個詞或子詞單元在詞匯表(包含漢字、英文單詞、標點符號)…

PPT內視頻播放無法播放的原因及解決辦法

PPT內視頻無法播放,通常是視頻編解碼的問題。目前我遇到的常見的視頻編碼格式有H.264,H.265,VP9,AV1這4種。H.264編解碼的視頻,Windows原生系統可以直接播放,其他的視頻編碼格式需要安裝對應的視頻編解碼插…

星越L_行李艙空間拓展講解

目錄 1.儲物槽 2.底板蓋儲物空間 3.掛鉤 3.左側照明燈 4.第二排座椅放倒 1.儲物槽 使用鑰匙或者后備箱按鈕打開電動后備箱,左側儲物槽可儲藏物品。 2.底板蓋儲物空間 打開地板蓋,下方有儲物空間。并放置了隨車工具。 3.掛鉤 后備箱左右兩測各有一個掛鉤。

深度學習與大模型-矩陣

矩陣其實在我們的生活中也有很多應用,只是我們沒注意罷了。 1. 矩陣是什么? 簡單來說,矩陣就是一個長方形的數字表格。比如你有一個2行3列的矩陣,可以寫成這樣: 這個矩陣有2行3列,每個數字都有一個位置&a…

LuaJIT 學習(2)—— 使用 FFI 庫的幾個例子

文章目錄 介紹Motivating Example: Calling External C Functions例子:Lua 中調用 C 函數 Motivating Example: Using C Data StructuresAccessing Standard System FunctionsAccessing the zlib Compression LibraryDefining Metamethods for a C Type例子&#xf…

基于 FastText、dlib 和 CppJieba 的中文語義相似度計算實踐

在自然語言處理(NLP)領域,語義相似度計算是許多任務的核心,例如問答系統、文本檢索和推薦系統。然而,中文因缺乏顯式分詞和復雜的語義結構,實現高效的語義對比具有一定挑戰性。 本文將介紹如何結合 CppJieba(高效中文分詞工具)、FastText(詞向量模型)和 dlib(機器學…

HCIA-11.以太網鏈路聚合與交換機堆疊、集群

鏈路聚合背景 拓撲組網時為了高可用,需要網絡的冗余備份。但增加冗余容易后會出現環路,所以我們部署了STP協議來破除環路。 但是,根據實際業務的需要,為網絡不停的增加冗余是現實需要的一部分。 那么,為了讓網絡冗余…

Unity基于C#+UGUI解決方案,制作每日簽到系統(本地存儲簽到數據)

一、需求介紹:基于本地存儲系統制作一個每日簽到系統界面,相關簽到界面如下圖所示,點擊“簽到有禮”按鈕后就會跳轉到“每日登錄禮”這個界面,點擊“立即簽到”按鈕之后,按鈕就會置灰,而且按鈕的文字會變成“等待明日”。 二、制作界面顯示相關功能,需要在Unity中新建一…

AI本地部署

文檔加載(Document Loading):從多種不同來源加載文檔。LangChain提供了100多種不同的文檔加載器,包括PDF在內的非結構化的數據、SQL在內的結構化的數據,以及Python、Java之類的代碼等? ?文本分割(Splitti…

精準車型識別:視覺分析技術的力量

隨著智慧城市和智能交通系統的快速發展,車型識別檢測成為交通管理、安全監控和數據分析的關鍵技術之一。利用視覺分析的方式,我們可以高效、準確地檢測監控下的車輛類型、車牌信息及車流量,為城市交通管理提供有力支持。本文將從背景、技術實…

上下文微調(Contextual Fine-Tuning, CFT)提高大型語言模型(LLMs)在特定領域的學習和推理能力

大型語言模型(LLMs)在開放領域任務中表現出色,但在快速演變的專業領域(如醫學、金融)中面臨挑戰: 知識更新難題:傳統指令微調(Instruction Fine-Tuning, IFT)依賴顯式指令,難以適應動態知識。災難性遺忘:持續預訓練(Continued Pretraining, CPT)可能導致模型遺忘已…

在 LaTeX 中強制表格位于頁面頂部

在 LaTeX 中強制表格位于頁面頂部,可以通過以下 多種方法結合使用,按優先級推薦: 方法 1:使用 [!t] 位置限定符 原理:通過 [!t] 強制 LaTeX 優先將表格放置在頁面頂部(Top),! 表示忽…

kotlin與MVVM的結合使用總結(二)

在 MVVM(Model - View - ViewModel)架構中,M 層即 Model 層,主要負責數據的管理、存儲和獲取,它與業務邏輯和數據處理相關。在 Kotlin 中實現 MVVM 的 M 層,通常會涉及數據類的定義、數據的本地存儲與遠程獲…

電子元器件選型與實戰應用—16 怎么選一個合適的MCU芯片?

文章目錄 1. 選型要素1.1 價格1.2 技術支持1.3 廠家優勢1.4 功耗1.5 特殊功能1.6 統計外設1.7 確定外設占用的內存和flash大小1.8 確定外設通信接口1.9 確定外設通信接口的電平1.10 確定外設的GPIO數量1.11 確定外設的供電和功耗1.12 確定外設GPIO的種類1.13 確定ADC的數量1.14…

VSCode 搭建C++編程環境 2025新版圖文安裝教程(100%搭建成功,VSCode安裝+C++環境搭建+運行測試+背景圖設置)

名人說:博觀而約取,厚積而薄發。——蘇軾《稼說送張琥》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder😊) 目錄 一、VScode下載及安裝二、安裝 MinGW-w64 工具鏈三、Windows環境變量配置四、檢查 M…