国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例)

這篇具有很好參考價值的文章主要介紹了【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

學習相關的基礎知識請閱讀本專欄其他文章,一定有你想要的。

https://blog.csdn.net/weixin_43764974/category_11021363.html

本文軟硬件:

  • STM32F103C8T6
  • ARM MDK 5.38
  • ARM complier 6
  • ST-Link v2
  • StdPeriph Drivers(標準庫)

文章開始前,我想再次說一下:keil、μvision、ARM MDK這幾個名詞(盡管前面的額文章已經(jīng)說過好幾次了)

  • Keil是一家德國公司,提供了一系列用于嵌入式系統(tǒng)開發(fā)的軟件工具。其中,Keil MDK(Microcontroller Development Kit)是Keil推出的一套集成開發(fā)環(huán)境(IDE),用于開發(fā)基于ARM處理器的嵌入式應用程序。

  • μVision(MicroVision)是Keil MDK的核心組件,是一個強大的集成開發(fā)環(huán)境,提供了代碼編輯、編譯、調試、仿真和燒錄等功能。μVision作為Keil MDK的前端工具,為用戶提供了友好的圖形界面和便捷的開發(fā)體驗。

  • ARM MDK(ARM Microcontroller Development Kit)是由ARM公司授權Keil開發(fā)的一套完整的軟件開發(fā)工具套件。它結合了Keil的軟件開發(fā)工具和ARM提供的CMSIS(Cortex Microcontroller Software Interface Standard)等軟件庫,用于開發(fā)基于ARM Cortex-M系列處理器的嵌入式系統(tǒng)。

通常,用 keil 代指上面3個。

一、工程結構

在Keil環(huán)境中創(chuàng)建STM32工程時,通常遵循以下結構:

  1. 工程文件(Project Files)

    • 工程文件.uvprojx):Keil工程的主文件,保存了工程的設置和配置信息。
    • 工程選項文件.uvoptx):保存了編譯器、鏈接器和調試器的配置選項。
    • 工程配置文件.uvproj.user):保存了工程的用戶配置選項,如源文件列表、編譯選項等(這里的user是你創(chuàng)建工程時的Windows用戶名)。
  2. 源文件(Source Files)

    • C/C++源文件(.c、.cpp):包含應用程序的主要源代碼。
    • 匯編源文件(.s):可選的匯編語言文件,用于特定的處理器指令或啟動代碼。
    • 頭文件(.h):包含各種配置和宏定義。
  3. 庫文件(Library Files)

    • STM32標準外設庫(.a):包含STM32芯片的標準外設庫文件,提供了訪問STM32外設的函數(shù)和常量。
    • 第三方庫文件:如果你使用了第三方庫(如FreeRTOS、CMSIS等),這些庫的文件也可以放在此處。
  4. 中間文件(Intermediate Files)

    • 目標文件(.o):編譯源文件生成的目標文件,用于后續(xù)的鏈接操作。
    • 列表文件(.lst):包含了編譯后的匯編代碼,可以用于調試和分析。
  5. 輸出文件(Output Files)

    • 可執(zhí)行文件(.axf、.elf):鏈接器將目標文件鏈接成可執(zhí)行文件,用于燒錄到STM32芯片上運行。
    • HEX文件(.hex):可執(zhí)行文件的十六進制格式,常用于燒錄器燒錄。
    • BIN文件(.bin):可執(zhí)行文件的二進制格式,也常用于燒錄器燒錄。
  6. 調試文件(Debug Files)

    • 調試信息文件(.axf、.elf):包含了調試器需要的符號信息和調試信息。
    • 調試輸出文件(.txt):包含了調試過程中的輸出信息和日志。

除了上述文件之外,Keil工程中還可能包含其他輔助文件,如:

  • 啟動文件(startup_xxx.s):包含處理器的啟動代碼,初始化處理器和外設。
  • 配置文件(xxx.h):包含各種配置選項和宏定義。
  • 驅動文件(xxx.c、xxx.h):用于特定外設的驅動程序代碼和頭文件。
  • 中斷處理函數(shù)(xxx.c):處理中斷請求的函數(shù)。

這個是為了方便你讀別人的代碼做的說明,你想怎樣就怎樣(但別隨意),不過都大同小異。最核心的就是 用戶程序+系統(tǒng)文件 (啟動文件、驅動文件等等)。

二、實操

關于keil的詳細介紹,可以看本專欄之前的文章。

(1)點擊project—>new μVision project,選擇一個工程的保存位置

(2)選擇設備:STM32F103C8(這里的pack要先安裝,前面文章已經(jīng)詳細介紹過)

【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃

(3)點擊 OK會彈出一個運行時的配置界面

【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃


Manage Run-Time Environment是keil軟件中用來管理軟件組件的一個功能??梢栽谶@個窗口中選擇或取消需要的組件,例如CMSIS、Device、Middleware等。這些組件可以提供一些預編譯的庫文件、頭文件、源代碼等,方便開發(fā)STM32工程。

  • 在彈出的Manage Run-Time Environment窗口中,你可以在左側的樹狀列表中看到不同類別的組件,例如CMSIS、Device、Middleware等。右側顯示了對應的描述、版本、文檔等信息。

  • 在右側的復選框中選擇或取消需要的組件。一般來說,至少需要選擇CMSIS->COREDevice->Startup這兩個組件,它們提供了一些基本的定義和啟動代碼。其他的組件根據(jù)工程需求而定,例如我來點個燈,就再選一個GPIO(這里使用標準庫,選擇stdPeriph Drivers下的GPIO)。
    【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃

  • 在選擇完組件后,點擊Resolve按鈕來解決一些依賴關系或者沖突問題,幫你勾選其他的依賴選項。 (如果你只知道要使用GPIO,不知道還要勾選其他的什么,就只選一個GPIO然后讓系統(tǒng)自動勾選)

在之后的開發(fā)中,你依舊可以點擊工具欄的綠色菱形來選擇需要的組件。


(4)在解決完所有的問題后,點擊OK按鈕來關閉Manage Run-Time Environment窗口,并生成相應的工程文件。
【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃
前面的操作,keil已經(jīng)為我們生成了工程所需的必要文件:

  • 系統(tǒng)初始化文件:system_stm32f10x.c,包含了一些系統(tǒng)初始化函數(shù)的定義。
  • 啟動文件:startup_stm32f10x_md.s,包含了復位向量表和復位處理函數(shù)的定義。
  • GPIO驅動:stm32f10x_gpio.c,可以在這個文件中查看GPIO驅動的功能和參數(shù)。
  • 等等。

其中,帶有黃色鑰匙的文件,是無法修改的,并且不會顯示在工程的文件夾中。當然,這些生成的文件通常都不需要修改。此外,有的文件還帶有+號,可以展開,這體現(xiàn)了文件的包含關系,方便查看文件依賴。

這可能與你用的“工程模板”有點不同,因為有的項目是舊版本的keil創(chuàng)建的,可能沒有使用軟件包或者RTE(即Run-Time Environment)功能,或者是基于CubeMX創(chuàng)建的,比如這樣:
【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃

現(xiàn)在的工程目錄的內容:
【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃
后面3個是工程文件,之前介紹過了,幾個文件夾分別是:

  • RTE:這個文件夾包含了你選擇的軟件組件的配置文件、頭文件和源文件。您可以在這里查看或修改您的組件設置和代碼。
  • DebugConfig:這個文件夾包含了你的調試配置文件,例如目標設置、調試器設置、跟蹤設置等。可以在這里查看或修改調試參數(shù)。
  • Listings:這個文件夾包含了工程編譯后生成的匯編代碼、符號表、映射文件等。可以在這里查看或分析您的編譯結果。
  • Objects:這個文件夾包含了工程編譯后生成的目標文件、庫文件、可執(zhí)行文件等。

5)編寫用戶程序

  • 可以在工程文件夾中新建一個用戶程序文件夾,比如User;

  • 然后新建文件,另存為.c文件,保存到剛才的文件;

  • 編寫代碼;

  • 把他們添加到keil中:

    • 點擊Manage project items ,新建Group,添加剛剛的源文件,如圖:
      【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃
    • option for target中,勾選生成hex文件

6)下載

我使用ST-Link下載的,如果不會可以看我之前的文章:

【STM32】自舉模式 和 程序下載(ST-Link和串口示例)

三、注意事項

3.1 我好像少了一些設置?

本文中,我使用的是STM32F103C8T6,在項目中,只是簡單實現(xiàn)了LED燈的亮滅控制。上面只有一個mian.c文件。
【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃

我的完整工作流概述是:

  1. 新建工程,選擇型號;
  2. 配置RTE;
  3. 編寫程序;
  4. 將程序添加到keil;
  5. 選擇生成hex文件;
  6. 編譯;
  7. 設置ST-Link下載;
  8. Download。

由于我是使用RTE創(chuàng)建的工程,RTE會自動處理必要的包含路徑和庫文件,以確保正確的編譯和鏈接過程。它會基于你在RTE配置向導中選擇的設備和外設驅動程序,自動生成相應的配置文件,包括正確的包含路徑。RTE也會根據(jù)你選擇的設備和外設驅動程序自動生成相應的處理器符號和宏定義。

也就是說,這些設置通常都不用管(當然,如果你自己編寫了頭文件,可能需要指定包含路徑):
【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃

3.2 RTE中驅動庫API的選擇

【必看】如何選擇SPL庫、HAL庫、LL庫?詳細的介紹看新文章:https://blog.csdn.net/weixin_43764974/article/details/132416118

CMSIS DriverARM 公司定義的通用驅動接口標準,用于各種 Cortex-M 微控制器的外設控制。它提供了一致的編程接口和移植性,使得驅動代碼可以在不同廠商的微控制器之間共享和重用。STMicroelectronics 提供了符合 CMSIS Driver 標準的驅動實現(xiàn),以便與其 STM32 系列微控制器兼容。

HAL (Hardware Abstraction Layer)STMicroelectronics 提供的一種高層次的庫,用于 STM32 微控制器的外設編程。HAL 提供了對 STM32 系列特定外設的功能函數(shù)和配置選項,使得開發(fā)人員可以相對簡單地編寫和控制外設。HAL 位于 CMSIS Driver 之上,使用 CMSIS Driver 提供的底層接口進行外設的控制。

stdPeriph Drivers 是由 STMicroelectronics 提供的舊版外設驅動庫。stdPeriph Drivers 提供了較高層次的 API,使編程相對簡單,但對于不同系列的 STM32 微控制器,其外設功能和寄存器定義可能有所差異。

附錄、代碼

簡單的LED閃爍,標準庫:

復制后如果中文亂碼,修改編碼為UTF-8即可。

#include "stm32f10x.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_gpio.h"

void LED_Init(void); //LED初始化函數(shù)聲明
void Delay(uint32_t nCount); //延時函數(shù)聲明

int main(void)
{
  LED_Init(); //調用LED初始化函數(shù)
  while (1)
  {
    GPIO_ResetBits(GPIOC, GPIO_Pin_13); //將PC13置低,點亮LED
    Delay(0x0FFFFF); //延時一段時間
    GPIO_SetBits(GPIOC, GPIO_Pin_13); //將PC13置高,熄滅LED
    Delay(0x0FFFFF); //延時一段時間
  }
}


void LED_Init(void) //LED初始化函數(shù)定義
{
  GPIO_InitTypeDef GPIO_InitStructure; //定義GPIO初始化結構體變量
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOC端口時鐘
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; //選擇PC13引腳
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設置為推挽輸出模式
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設置IO口速度為50MHz
  GPIO_Init(GPIOC, &GPIO_InitStructure); //根據(jù)參數(shù)初始化GPIOC
  GPIO_SetBits(GPIOC, GPIO_Pin_13); //將PC13置高,熄滅LED
}

void Delay(uint32_t nCount) //延時函數(shù)定義
{
  for(; nCount != 0; nCount--); //循環(huán)減計數(shù)
}

效果:

【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例),Embedded Systems,stm32,實時互動,arm開發(fā),原力計劃



~ 文章來源地址http://www.zghlxwxcb.cn/news/detail-596728.html

到了這里,關于【STM32】使用RTE ,從 0 開始創(chuàng)建一個 (keil) ARM MDK工程(純keil,標準庫,以STM32F103C8T6為例)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MDK keil5新建STM32工程文件--實踐篇

    MDK keil5新建STM32工程文件--實踐篇

    一、先下載芯片支持包 第一步 :當然是先百度搜索我們的keil官網(wǎng)(網(wǎng)址):https://www.keil.com/ ? 第二步 :點擊首頁的Project,會跳轉如界面,再次點擊Arm Cortex-M,如圖所示: ?? 第三步 :點擊后會再次跳轉,這時候我們再次點擊Public Software Packs,如圖所示: 第四步 :點擊后

    2024年02月16日
    瀏覽(101)
  • 還在老一套?STM32使用新KEIL5的IDE,全新開發(fā)模式RTE介紹及使用

    還在老一套?STM32使用新KEIL5的IDE,全新開發(fā)模式RTE介紹及使用

    Keil新版本出來了,推出了一種全新開發(fā)模式RTE框架(?Run-Time Environment),更好用了。然而網(wǎng)上的教程資料竟還都是把Keil5當成Keil4來用,直接不使用這個功能。當前正點原子或野火的教程提供的例程雖有提到Keil5,但也是基本上當Keil4來用,還是傳統(tǒng)的模式或標準庫或HAL庫。當然

    2024年02月05日
    瀏覽(93)
  • 【正點原子STM32】STM32初體驗(Keil MDK工具下載使用、DAP仿真器、MDK上配置DAP、Debug)

    【正點原子STM32】STM32初體驗(Keil MDK工具下載使用、DAP仿真器、MDK上配置DAP、Debug)

    一、MDK5編譯例程 二、串口下載程序 2.1、串口下載程序須知 2.2、串口下載硬件連接 2.3、配置下載工具 (ATK-XISP.exe) 2.4、STM32啟動模式(M3和M4) 三、DAP下載程序 3.1、DAP下載硬件連接 3.2、在MDK上配置DAP 不同開發(fā)板的下載算法有所不同 Build構建 F7、Download下載 F8 四、DAP調試程序 4.

    2024年02月20日
    瀏覽(92)
  • Keil5 開發(fā) STM32 工程創(chuàng)建

    Keil5 開發(fā) STM32 工程創(chuàng)建

    打開Keil5軟件,點Project菜單的的下來選項New uVision Project…,然后選擇工程文件夾放置的目錄,新建項目目錄,如:LED閃爍 點擊OK后,會彈出配置運行時環(huán)境的選項框,關閉即可,該方法使用手動配置。 完成后,如下圖: 打開項目目錄,分別創(chuàng)建3個文件夾:Library, Start, User,

    2024年02月16日
    瀏覽(98)
  • keil_5創(chuàng)建STM32工程,超詳細

    keil_5創(chuàng)建STM32工程,超詳細

    1、點擊Project創(chuàng)建新的工程文件 2、新建一個文件夾作為工程目錄,命名為2-2 STM32工程模板。 ?????? 在該工程目錄下給工程文件命名為Project 3、選擇器件型號,因為使用的芯片型號是STM32F103C8T6,所以型號選STM32F103C8,后點擊OK. 4、工程創(chuàng)建好后,里面是空的,需要為其添加

    2024年02月02日
    瀏覽(94)
  • Keil5創(chuàng)建新工程時找不到STM32芯片

    Keil5創(chuàng)建新工程時找不到STM32芯片

    在安裝完Keil5之后,需要導入STM32芯片包,但是按照網(wǎng)上提供的安裝教程,直接點擊資料包會報錯,如下圖: ? ? ? ? 沒有顯示可用STM32芯片 嘗試解決: 在安裝的軟件目錄下找到 .KEil5UV4PackUnzip.exe ,找到其屬性,將其兼容性改為以管理員身份運行。如圖: ? ? ?設置完后,

    2024年02月11日
    瀏覽(108)
  • STM32 keil MDK配置FPU詳解

    STM32 keil MDK配置FPU詳解

    記錄下keil對FPU的配置,及對應的宏參數(shù)。 FPU單元是芯片上一個獨立于CPU處理的浮點運算單元,整個單元可以被使能和關閉。 STM32F4帶有32位單精度硬件FPU支持浮點指令集。相比Cortex-M3、Cortex-M0等無FPU的芯片高出數(shù)十倍甚至上百倍的運算性能。 STM32F7/H7及以上處理器帶有雙精度

    2024年02月11日
    瀏覽(79)
  • keil官網(wǎng)下載MDK的STM32芯片pack包

    keil官網(wǎng)下載MDK的STM32芯片pack包

    背景 ? ? ? ? 最近重裝了電腦系統(tǒng),重新安裝了MDK所以導致MDK芯片包需要重新下載,軟件內下載又太慢,所以趁現(xiàn)在找到了官網(wǎng)下載方法把方法分享出來供大家參考。 1、在瀏覽器中輸入網(wǎng)址:www.keil.arm.com進入如下界面,然后點擊:Hardware -Devices 2、在Devices中選擇,在紅色方框

    2024年02月13日
    瀏覽(98)
  • 使用Git管理keil Stm32工程

    使用Git管理keil Stm32工程

    在軟件開發(fā)領域,版本控制是非常重要的一環(huán)。它能夠讓我們追蹤代碼的變化、合作開發(fā)、管理不同的版本以及回滾到之前的狀態(tài)。Git 是一個流行的分布式版本控制系統(tǒng),本文將向你介紹如何使用 Git 來管理你的代碼(以keil工程為例)。 一、Git Bush的配置 在使用git之前,我

    2024年02月04日
    瀏覽(290)
  • 【STM32】STM32CubeMX創(chuàng)建第一個工程

    【STM32】STM32CubeMX創(chuàng)建第一個工程

    STM32CubeMX是STM32Cube工具家族中的一員,從MCU/MPU選型,引腳配置,系統(tǒng)時鐘以及外設時鐘設置,到外設參數(shù)配置,中間件參數(shù)配置,它給STM32開發(fā)者們提供了一種簡單,方便,并且直觀的方式來完成這些工作。所有的配置完成后,它還可以根據(jù)所選的IDE生成對應的工程和初始化

    2024年04月09日
    瀏覽(98)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包