- STM32庫開發實戰指南:基于STM32F103(第2版)
- 劉火良 楊森
- 1266字
- 2019-03-02 02:26:45
第6章 新建工程——寄存器版
6.1 新建本地工程文件夾
為了使工程目錄更加清晰,我們在本地電腦上新建1個文件夾用于存放整個工程,如命名為“LED”,然后在該目錄下新建兩個文件夾,具體見表6-1和圖6-1。
表6-1 工程目錄文件夾清單


圖6-1 工程文件夾目錄
在本地新建好文件夾后,在文件夾下新建一些文件,見表6-2。
表6-2 工程目錄文件夾內容清單

6.2 新建工程
打開KEIL5,新建一個工程,見圖6-2。工程名根據喜好命名,這里取LED-REG,直接保存在LED文件夾下。

圖6-2 在KEIL5中新建工程
1.選擇CPU型號
這個根據自己開發板使用的CPU具體型號來選擇,F103“指南者”選STM32F103VE型號,見圖6-3。如果這里沒有出現想要的CPU型號,或者一個型號都沒有,那么肯定是你的KEIL5沒有添加device庫,KEIL5不像KEIL4那樣自帶了很多MCU的型號,而是需要自己添加。關于如何添加請參考第1章。

圖6-3 選擇具體的CPU型號
2.在線添加庫文件
用寄存器控制STM32時我們不需要在線添加庫文件,這里單擊關閉按鈕,見圖6-4。

圖6-4 庫文件管理
3.添加文件
在新建的工程中添加文件,可以從本地建好的工程文件夾下獲取,雙擊組文件夾就會出現添加文件的路徑,然后選擇文件即可。我們對要添加的3個文件說明如下,見圖6-5。

圖6-5 在工程中添加文件
(1)startup_stm32f10x_hd.s
這是啟動文件、系統上電后第一個運行的程序,由匯編語言編寫,C編程用得比較少,可暫時不管,這個文件從固件庫里面拷貝而來,由官方提供。文件在這個目錄下:STM32F10x_Std Periph_Lib_V3.5.0\Libraries\CMSIS\CM3\Device Support\ST\STM32F10x\startup\arm\startup_stm32f10x_hd.s。
(2)stm32f10x.h
用戶手動新建,用于存放寄存器映射的代碼,暫時為空。
(3)main.c
用戶手動新建,用于存放main函數,暫時為空。
4.配置魔術棒選項卡
這一步的配置工作很重要,很多時候,串口用不了printf函數,編譯有問題,或下載有問題,都是在這個步驟的配置中出了錯。
1)在Target選項卡中選中“Use Micro LIb”復選框,為的是在日后編寫串口驅動的時候可以使用printf函數,見圖6-6。

圖6-6 選中微庫
2)在Output選項卡中把輸出文件夾定位到工程目錄下的Output文件夾。如果想在編譯的過程中生成hex文件,那么把Create HEX File選項勾選上,見圖6-7。

圖6-7 配置Output選項卡
3)在Listing選項卡中把輸出文件夾定位到工程目錄下的Listing文件夾,見圖6-8。

圖6-8 配置Listing選項卡
5.下載器配置
在仿真器連接好電腦和開發板且開發板供電正常的情況下,打開編譯軟件KEIL,在魔術棒選項卡里面選擇仿真器的型號,具體過程如下。
1)Debug選項的配置見圖6-9。

圖6-9 在Debug選項卡中選擇CMSIS-DAP Debugger
2)Utilities選項的配置見圖6-10。

圖6-10 在Utilities選項卡中選擇Use Debug Driver
3)Debug選項的配置見圖6-11。

圖6-11 Debug選項的配置
選擇目標板,具體選擇多大的Flash要根據板子上的芯片型號決定,見圖6-12。F103指南者選512k。這里面有個小技巧就是把Reset and Run也勾選上,這樣程序下載完之后就會自動運行,否則需要手動復位。擦除的Flash大小選擇Erase Sectors即可,不要選擇Erase Full Chip,下載會非常慢。

圖6-12 選擇目標板
6.3 下載程序
如果前面的步驟都成功了,接下來就可以把編譯好的程序下載到開發板上運行。下載程序不需要其他額外的軟件,直接單擊KEIL中的LOAD按鈕即可,見圖6-13。

圖6-13 下載程序
程序下載后,在Build Output窗格中如果顯示出“Application running...”則表示程序下載成功。如果沒有出現實驗現象,按復位鍵試試。當然,這只是一個工程模板,我們還沒寫程序,開發板不會有任何現象。
至此,一個新的工程模板新建完畢。
- 從零開始寫Linux內核:一書學透核心原理與實現
- 零基礎學鴻蒙PC:新一代國產操作系統
- 竹林蹊徑:深入淺出windows驅動開發
- Django Project Blueprints
- 跟老男孩學Linux運維:Shell編程實戰
- INSTANT Galleria Howto
- Ubuntu Linux操作系統實用教程
- iOS 10快速開發:18天零基礎開發一個商業應用
- 應急指揮信息系統設計
- Java EE 7 Developer Handbook
- Learning IBM Watson Analytics
- 計算機應用基礎(Windows 7+Office 2010)
- Responsive Web Design with AngularJS
- Website Development with PyroCMS
- 微軟360度