1. 程式人生 > >STM32重要原始檔和標頭檔案說明

STM32重要原始檔和標頭檔案說明

對於STM32F4xx_StdPeriph_Driver,其重要原始檔為:

stm32f4xx_ppp.h:外設標頭檔案。這裡的ppp只是一個程式碼,在實際上是具體的外設名字,如ADC,DMA等。在實際使用時根據所需的外設選擇性移植。

                        在STM32F4xx_StdPeriph_Driver\inc中

stm32f4xx_ppp.c:外設原始檔。這裡的ppp只是一個程式碼,在實際上是具體的外設名字,如ADC,DMA等。在實際使用時根據所需的外設選擇性移植。

                       在STM32F4xx_StdPeriph_Driver\src中

stm32f4xx_conf.h:外設驅動配置檔案。通過修改該檔案中所包含的外設標頭檔案,使用者啟動或禁用外設驅動。

此外,在此資料夾開啟巨集定義USE_FULL_ASSERT,通過預處理啟 用或禁用標準外設庫執行時的故障檢測。

                        在Project\STM32F4xx_StdPeriph_Templates中。

stm32f4xx_it.h :標頭檔案。包括所有中斷處理程式原型。在Project\STM32F4xx_StdPeriph_Templates中。

stm32f4xx_it.c :中斷源程式模板,中斷函式的名稱要與啟動檔案中中斷向量表的名稱一致。

                         在Project\STM32F4xx_StdPeriph_Templates中。

此外,對於stm32f4的標準外設韌體庫,在CMSIS資料夾中還有相應的DSP庫:DSP_Lib和Lib。DSP_Lib主要為DSP函式庫的例項和原始碼;Lib為編譯好的,且對於不同核心的STM32系列MCU所使用的lib檔案。

以下為韌體庫移植時CMSIS資料夾中的重要原始檔:

core_cm4.h :核心功能的定義,比如NVIC相關暫存器的結構體和Systick配置。

                                   在CMSIS/Include中

core_cmFunc.h :核心核心功能介面標頭檔案。

                                   在CMSIS/Include中

core_cmInstr.h :包含一些核心核心專用指令。

                                在CMSIS/Include中

core_cmSimd.h :包含與編譯器相關的處理。

                                在CMSIS/Include中 

stm32f4xx.h :包含了stm32f4的暫存器結構體的定義(類似於c51的reg52.h)。

                            在CMSIS\Device\ST\STM32F4xx\Include中

system_stm32f4xx.h :system_stm32f4xx.c的標頭檔案。

                            在CMSIS\Device\ST\STM32F4xx\Include中

system_stm32f4xx.c :stm32f4的系統時鐘配置。

                        在CMSIS\Device\ST\STM32F4xx\Source\Templates中

startup_stm32f40_41xxx.s:啟動檔案:設定SP的初始值;設定PC的初始值;設定中斷向量表的地址;配置時鐘;設定堆疊;呼叫main。這個啟動檔案先呼叫system_stm32f4xx.c裡面的systeminit()在呼叫main()之前。

相關推薦

STM32重要原始檔檔案說明

對於STM32F4xx_StdPeriph_Driver,其重要原始檔為: stm32f4xx_ppp.h:外設標頭檔案。這裡的ppp只是一個程式碼,在實際上是具體的外設名字,如ADC,DMA等。在實際使用時根據所需的外設選擇性移植。                  

關於extern以及原始檔檔案的應用

最近在糾結這個問題,全域性變數的宣告到底應該在原始檔還是標頭檔案中,其實有兩種方法: 緣由:因為 int a;表示的是一個定義,而extern int a;卻是一個宣告 方法一:在a.h中表示全域性變數的宣告:extern int a;       &nbs

對c&c++原始檔檔案分開的好處的一點認識

對c&c++程式來說,基本上來說都是要把原始檔和標頭檔案分別編寫。一般都是代表一個基本功能的原始檔引用相應的標頭檔案。一個 相關功能的模組可能有若干對原始檔和標頭檔案組成。這是基於元件程式設計的核心。在我看來,他的好處是巨大的,是java不可比擬的,也是不可複製的:c

原始檔檔案的區別

標頭檔案和原始檔在本質上沒有任何區別。 只不過一般:字尾為 .h 的檔案是標頭檔案,內含函式宣告、巨集定義、結構體定義等內容。 字尾為 .c 的檔案是原始檔,內含函式實現,變數定義等內容。而且是什麼字尾也沒有關係,只不過編譯器會預設對某些字尾的檔案採取某些動作。這樣分開寫

vs2010解決方案原始檔檔案夾消失

問題:vs2010編寫C/C++程式時,有時會遇到解決方案中沒有檔案組織結構(即不顯示原始檔夾和標頭檔案夾) 如下圖: 解決方法:檢視.filters檔案裡沒有亂碼(SVN更新的時候可能有亂碼),修復亂碼之後問題解決

extern實現原始檔檔案)之間變數函式的引用

在一個C工程中,會有很多原始檔,因此當在一個原始檔中呼叫另一個原始檔中的函式或者使用另一個原始檔中定義的變數和結構體時,如何保證函式和變數的可見性呢? 1.結構體和變數的呼叫 下面是看到的關於結構體中的使用:http://blog.csdn.net/Fortware/a

VC 6 0中新增庫檔案檔案

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【Keil】Keil5新增源程式檔案

xxx.c就是源程式 xxx.h就是標頭檔案   【源程式新增方法】 雙擊資料夾,例如圖片上的Source,跳出彈窗,選擇需要新增的源程式即可   【新增標頭檔案的方法】 1.首先點選圖片紅框處,或是在資料夾test點選右鍵,再不然點選快捷鍵Alt+F7 2.跳出O

關於原始檔檔案,靜態連結庫檔案,動態連結庫檔案的的理解

先從原始檔和標頭檔案的關係說起,由於是還是初學階段,只接觸了C++語言和windows平臺下的程式設計,所以只講這兩方面的東東, 標頭檔案的作用:對函式,變數,和類的宣告,其實在標頭檔案也可對一些特殊函式和變數定義,比如可以在標頭檔案中對行內函數和const型別變數定義,由於對類的宣告

Qt新增庫檔案檔案目錄(QCreator)(轉載學習)

在使用QtCreator開發影象處理程式的時候想加入Opencv庫來處理圖形,新增標頭檔案,需要編輯工程資料夾下的.pro檔案在檔案中新增以下內容,即可包含標頭檔案的資料夾:   INCLUDEPATH +=D:\OpenCV2.0\vc2008\include

Qt Creator 配置第三方庫檔案

引入第三方庫 opencv 首先安裝opencv,前面部落格opencv已經介紹如何安裝了 D:\opencv\build\x64\vc14\lib\opencv_world310.lib    動態庫(存放動態連結庫的地址) D:\opencv\build\include

c語言編譯過程檔案<>與""的區別

編譯過程:   預處理--編譯--彙編--連結 預處理:用於將所有#include標頭檔案及#define等巨集定義替換成真正的內容,預處理後的得到的仍然是文字檔案,但體積會大很多。 編譯:將預處理之後的程式轉換成特定彙編程式碼的過程

原始檔檔案,靜態連結庫檔案,動態連結庫檔案的的理解

如果你把一個.exe檔案只接放到沒有操作系充的“裸機”上去執行,顯然是執行不了的,可是你把這個程式放在一個裝有windows系統的電腦上就能運行了,顯然,程式的執行還是得依靠windows作業系統,這裡就要說到.dll檔案,上面說到的連結這一步時的程式碼複製只講到對程式作者自已寫的檔案和.lib檔案中用到的程

include怎麼關聯檔案檔案如何關聯原始檔檔案被重複包含的危害?怎麼防止重複包含?

標頭檔案(.h)的功能是一般用來進行宣告的(函式,類或變數引用,巨集定義)。 原始檔(.cpp)是用來進行定義的(函式,類定義,變數定義)。 #include 是在編譯器進行編譯之前,即在預編譯時把它後面所寫的那個標頭檔案的內容,完完整整地、 一字不改地包含到當前的原始檔中來。 &nbs

c語言陣列、結構、原始檔檔案

    簡單的說其實要理解C檔案與標頭檔案(即.h)有什麼不同之處,首先需要弄明白編譯器的工作過程,一般說來編譯器會做以下幾個過程:       1.預處理階段   2.詞法與語法分析階段   3.編譯階段,首先編譯成純彙編語句,再將之彙編成跟CPU相關的二進位制碼,生成各個目標檔案 (.obj檔案)   

QT增加連結庫檔案搜尋目錄(相對目錄)

     QT開發的時候,需要增加連結的動態庫或者靜態庫,或者搜尋的標頭檔案。正常情況下,使用相對目錄是最好的。下面是常用的方法:     1 增加庫依賴。如下,OUT_PWD表示QT編譯後的輸出目錄。比如Debug或者Release目錄。後續釋出的時候,把so庫或者靜態庫放

linux下g++ 編譯時動態庫靜態庫的連結檔案問題

原來編譯的時候都是用的很隨意,沒用系統的總結一下,這幾天在編譯的時候遇到一些下問題,於是就總結一下,省得過幾天又給忘了。 1.動態庫和靜態庫簡介 靜態庫在程式連結的時候會自動的連結到程式裡,所以一旦編譯完成,靜態庫就不需要了,靜態庫以.a結尾。  動態庫在編譯時不會被連線到目的碼中,而是在程式執行

《CMake實踐》筆記三:構建靜態庫與動態庫 及 如何使用外部共享庫檔案

五、靜態庫與動態庫構建 讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。 本節的任務: 1、建立一個靜態庫和動態庫,提供HelloFunc函式供

(轉)VC 6.0中新增庫檔案檔案

https://blog.csdn.net/yusiguyuan/article/details/12649665  附加標頭檔案包含 VC6.0中: VC6.0預設include包含路徑:Tools>Options>Directories>Include f

《CMake實踐》筆記三:構建靜態庫(.a) 與 動態庫(.so) 及 如何使用外部共享庫檔案

五、靜態庫與動態庫構建 讀者雲,太能羅唆了,一個Hello World就折騰了兩個大節。OK,從本節開始,我們不再折騰Hello World了,我們來折騰Hello World的共享庫。 本節的任務: 1、建立一個靜態庫和動態庫,提供HelloFunc函式供其他程式程式設計使用,Hell