<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > STM32學(xué)前班教程之四:打好基礎建立模板

STM32學(xué)前班教程之四:打好基礎建立模板

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏
1、新建目錄Project_IAR4,按照自己的順序重新組織dll(驅動(dòng));inc、src函數庫;settings,其他所有文件全部放這個(gè)新建的目錄下。

2、雙擊打開(kāi)Project.eww,繼續更改內部設置。

3、需更改的內容列表:

位置和項目目標說(shuō)明

ProjectEdirconfignations新建基于STM3210B的配置編譯目標和過(guò)程文件存放

ProjectOptionGeneralOptionTargetSTSTM32F10x選擇芯片類(lèi)型

ProjectOptionC/C++CompilerPreprocessorAdditionalincludedirectories$PROJ_DIR$

$PROJ_DIR$inc頭文件相對位置,需要包括“map/lib/type”的位置

ProjectOptionC/C++CompilerPreprocessorDefinedsymbols空白是在Flash里面調試程序,VECT_TAB_RAM是在RAM里調試程序

ProjectOptionC/C++CompilerOptimizationsSize最終編譯一般選擇High

調試可選NoneNone,Low,Medium,High是不同的代碼優(yōu)化等級

ProjectOptionLinkerOutput去掉Overrridedefault輸出格式使用默認

ProjectOptionLinkerExtraOutput打開(kāi)GeneralExtraOutput去掉Overrridedefault廠(chǎng)家要求

ProjectOptionLinkerConfig打開(kāi)Overrridedefault

$PROJ_DIR$lnkarm_flash.xcl使用Flash調試程序,如果需要使用RAM調試則改為lnkarm_RAM.xcl

ProjectOptionDebuggerSetupDriverThird-PartyDriver使用第三方驅動(dòng)連接單片機

ProjectOptionDebuggerDownloadUseflashloader下載到flash所需的設置

ProjectOptionDebuggerThird-PartyDriverThird-PartyDriverIARdebuggerdriver$PROJ_DIR$ddlSTM32Driver.dll驅動(dòng)文件路徑

注1:所有跟路徑相關(guān)的設置需要根據實(shí)際情況編寫(xiě),相對路徑的編寫(xiě)——“$PROJ_DIR$”代表eww文件所在文件夾,“..”代表向上一層。

注2:其他設置使用庫函數里面的工程文件的默認選項即可,初學(xué)不用了解太多。

4、需要重新刪除并重新添加Project下“FWLib”和“User”的所有文件,為了刪減外設模塊方便需要在“USER”額外添加“stm32f10x_conf.h”(不添加也可以,需要展開(kāi)main.c找到它)。然后執行ProjectRebuidAll,通過(guò)則設置完畢。

5、完成以上步驟,第一個(gè)自己習慣的程序庫就建立完畢了,以后可以從“stm32f10x_conf.h”中刪減各種庫文件,從“stm32f10x_it.c”編輯中斷,從“main.c”編寫(xiě)得到自己的程序。最后需要將這個(gè)庫打包封存,每次解壓縮并修改主目錄名稱(chēng)即可。

6、我的程序庫特點(diǎn):

a)默認兼容ST-LINK-II,IAREWARM4.42A,Flash調試,其他有可能需要更改設置

b)為操作方便減少了目錄的層次

c)為學(xué)習方便使用網(wǎng)友漢化版2.0.2固件,主要是庫函數中c代碼的注釋。

后面隨著(zhù)學(xué)習深入將在我的模板里面加入如下內容:

d)加入必用的flash(讀取優(yōu)化),lib(debug),nvic(中斷位置判斷、開(kāi)中斷模板),rcc(時(shí)鐘管理模板,開(kāi)啟外設時(shí)鐘模板),gpio(管腳定義模板)的初始化代碼,所有模板代碼用到的時(shí)候只要去掉前面的注釋“//”,根據需求填入相應值就可以了。

e)因為自己記性不好,所以main函數中的代碼做到每行注釋?zhuān)阌谧约阂院笫褂谩?wbr />

f)集成Print_U函數簡(jiǎn)單串口收發(fā)函數代碼,便于調試,改變使用Printf函數的調試習慣。

g)集成使用systick的精確延時(shí)函數delay。

h)集成時(shí)鐘故障處理代碼。

i)集成電壓監控代碼。

j)集成片上溫度檢測代碼。

k)逐步加入所有外設的初始化模塊

一、編寫(xiě)程序所需的步驟

1、解壓縮,改目錄名稱(chēng),和eww文件名,以便跟其他程序區分。

2、更改設置:在“stm32f10x_conf.h”關(guān)閉不用的外設(在其聲明函數前面加注釋符號“//”)。并根據外部晶振速度更改其中“HSE_Value”的數值,其單位是Hz。

3、完成各種頭文件的包含(#include"xxx.h";),公共變量的聲明(static數據類(lèi)型變量名稱(chēng);),子程序聲明(void函數名稱(chēng)(參數);)……C語(yǔ)言必須的前置工作。

4、改寫(xiě)我的程序庫里面所預設的模板,再進(jìn)行其他模塊的初始化子程序代碼的編寫(xiě),并在程序代碼的開(kāi)始部分調用。注意:必須記住所有外設的使用需要考慮4個(gè)問(wèn)題:

a)開(kāi)時(shí)鐘RCC(在RCC初始化中);

b)自身初始化;

c)相關(guān)管腳配置(在GPIO初始化中);

d)是否使用中斷(在NVIC初始化中)

5、編寫(xiě)main.c中的主要代碼和各種子函數。

6、在“stm32f10x_it.c”填寫(xiě)各種中斷所需的執行代碼,如果用不到中斷的簡(jiǎn)單程序則不用編寫(xiě)此文件。

7、編譯生成“bin”的方法:ProjectOptionLinkerOutputFormat,里面選擇“Other”,在下面的“Output”選“raw-binary”生成bin。

8、編譯生成“hex”的方法:ProjectOptionLinkerOutputFormat,里面選擇“Other”,在下面的“Output”選“intel-extended”,生成a79直接改名成為hex或者選中上面的“OutputFlie”在“Overrridedefault”項目里面改擴展名為hex。

使用軟件界面的Debug燒寫(xiě)并按鈕調試程序。注意,ST-Link-II是直接將程序燒寫(xiě)進(jìn)Flash進(jìn)行調試,而不是使用RAM的方式。


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>