STM32新建工程

2021-09-19 12:07:04 字數 1682 閱讀 4913

韌體庫:韌體庫就是把操作暫存器的**封裝成函式給使用者操作暫存器實現想要的功能

用韌體庫操作暫存器,新建工程的步驟:

1.在本地新建乙個資料夾,存放庫檔案

cmsis存放核心相關的標頭檔案、啟動檔案和system _stm32f4xx.h system_stm32f4xx.c檔案

project存放工程檔案

stm32f4xx_stdperiph_driver存放外設的標頭檔案和原始檔

user存放main.c、mian.h、stm32f4xx_it.h、stm32f4xx_it.c、(編寫中斷服務函式,定義了一些特殊的終端介面,一般中斷函式都是自己寫的)stm32f4xx_conf.h(根據晶元的型號去增減外設的標頭檔案)

啟動檔案(startup_stm32f429_439xx.s)是用組合語言編寫的。equ相當於c語言中的define

stack—棧(向下生長) heap—堆(向上生長)

__initial_sp(表示棧的結束位址)

__heap_base(表示堆的起始位址)

__heap_limit(表示堆的結束位址)

啟動檔案主要包含了中斷服務的定義和中斷服務程式,中斷服務程式只是佔乙個位置,中斷服務程式還是有自己編寫還有乙個復位程式

2.然後開啟keil,新建工程。新增組,把對應的原始檔新增進去

乙個工程中必須要有startup_stm32f429_439xx.s、system _stm32f4xx.h、system_stm32f4xx.c、stm32f4xx.h這四個檔案

startup_stm32f429_439xx.s啟動檔案(呼叫systeminit()這個函式去配置stm32的時鐘, 設定 c庫的分支入口「__main(用來呼叫main函式))

system_stm32f4xx.c這個檔案包含了stm32f4xx的系統時鐘配置,啟動檔案呼叫的systeminit()的這個函式是在system_stm32f4xx.c這個原始檔中,這個原始檔包含了stm32f4xx.h這個標頭檔案。

stm32f4xx.h這個檔案包含了stm32f4xx所有的外設暫存器定義、位定義和暫存器對映

3.編譯

會發現有很多錯誤,因為我們在新增組的時候沒有新增標頭檔案的路徑所以導致有錯誤

修改錯誤:(1) 首先開啟選項卡,(c/c++)把需要用到的標頭檔案路徑新增進去

(4)修改stm32f4xx_it.c檔案(去掉void systick_handler(void)函式中的systik handler 和#include math.h)

完成後就可以寫**了

STM32新建工程模版

hal庫或者說庫函式版本 其他mdk使用細節 以正點原子阿波羅f767為例 參考資料 開發指南 暫存器版本和hal庫版本 mdk5的環境要提前配置好,stm32cubef4或f7 取決於你使用的 的晶元包也要安裝好 正點原子 阿波羅stm32f767開發板 8,stm32參考資料 1,stm32cu...

stm32入門之新建工程

一 新建mdk5工程 m3 1.新建工程文件 按一定風格分類,如將自己編寫的標頭檔案和c檔案放在命名為user的資料夾,將核心檔案 系統檔案 啟動檔案新增到system資料夾,將stm32 韌體庫提供的標頭檔案和c檔案放在命名為fwlib的資料夾 2.新增檔案 拷貝核心檔案,系統檔案,啟動檔案 新增...

(STM32學習)1 新建工程模版

一 庫函式 1.core下的三個檔案是core cm.c core cm.h starup stmf10x hd.s 拷貝自 d 學習 開發板 精英a盤 資料 1 8,stm32參考資料 1,stm32f1xx韌體庫 stm32f10x stdperiph lib v3.5.0 libraries ...