我們要開始建立我們的第一個工程.
在開始之前,請讀者先從網上獲取ST公司提供的STM32 固件庫“stm32f10x_fw_archive v2.0 (May2009)”,然后將其解壓。 首先請讀者在任意一個地方建立一個空文件夾,并將其命名為“STM32_FW”。然后在STM32_FW 里新建 6 個文件夾,分別命名為“boot”、“library”、“src”、“obj”、“list”、“library”。 如下圖所示:
接下來請執行如下操作: 1、在剛才解壓“stm32f10x_fw_archivev2.0(May2009)”得到的文件夾里按照路徑\stm32f10x_fw_archive v2.0 (May2009)\Archive,找到um0427.rar并將其解壓。 2、在第1步解壓到的um0427文件夾里按路徑“\um0427\FWLib\project\RVMDK”找到文件:“cortexm3_macro.s”和“stm32f10x_vector.s”,并將其復制到前面所新建的“STM32_FW\boot”文件夾中。此二者為STM32 在 MDK 環境下的啟動文件,是每一個 STM32工程所必需的。 3、在“\um0427\FWLib\project”中找到文件:“stm32f10x_it”和“stm32f10x_it”,并將其復制到“STM32_FW\interrupt”中。此二者包含了STM32 在 MDK 下的中斷服務入口函數。 4、將“\um0427\FWLib\library”中的“inc”文件夾和“src”文件夾復制到“STM32_FW\library”中。此二文件夾為STM32 的固件函數庫文件,一般情況下這兩個文件夾里的文件都不推薦改動,可以設置只讀屬性。 5、最后請新建一個名字為“main.c”文件,放入“STM32_FW\src”中。 執行完以上操作后,應該得到如下結構: STM32_FW\boot:“cortexm3_macro.s”和“stm32f10x_vector.s”文件; STM32_FW\interrupt:“stm32f10x_it”和“stm32f10x_it”文件; STM32_FW\src:“main.c”文件; STM32_FW\library:“inc”文件夾和“src”文件夾; 建立“STM32_FW”文件夾的用意在于,它可以作為我們以后進行STM32 程序開發時候的一個目錄結構。以后我們新建任何一個工程時,只要直接復制這個文件夾里面的四個文件夾就可以完成一個工程最基本的文件結構的建立了。這樣可以提高我們的開發效率。 下一步,我們來真正著手建立第一個工程。 首先新建一個文件夾,筆者將其命名為“MyFirstJob”。并將“STM32_FW”中的“boot”、“library”、“src”、“obj”、“list”、“library”文件夾復制到“MyFirstJob”中。如下圖所示: 
然后執行如下操作: 1、打開Keil uVision4,依次點擊Project-New uVisionProject(如果當前有工程正在打開,請先執行Project-CloseProject將其關閉),彈出窗口,填寫工程名和保存路徑(保存在我們剛才新建的“MyFirstJob”下,命名為MyFirstJob),然后點擊保存。 如下圖: 
2、接著第 1 步的保存之后,彈出窗口,選擇 CPU 類型。此處根據實際情況選取,作者使用的是STMicroelectronics 的 STM32F103RB 系列。如圖所示,我們可以看到右側顯示了該型號 STM32器件的一些特性,比如 72MHz,128K Flash,20K SRAM……資源都是非常豐富的。 如圖所示:

下圖對話框:

此處是詢問需不需要給工程添加STM32 的啟動代碼(Startup Code),記得此處點選No。 4、至此STM32的工程已經新建完畢,可以看到如下界面:

“boot”、“library”、“src”、“library”。完成后如下圖所示:

(2)在 boot 上點擊右鍵,在彈出的菜單中選擇 “Add File to Group‘boot’...” ,將“MyFirstJob\boot”文件夾中的“cortexm3_macro.s”和“stm32f10x_vector.s”添加進來; (3)依照(2)的方法,給library添加“MyFirstJob\library\src”路徑下的 “stm32f10x_flash.c”、 “stm32f10x_gpio.c”、“stm32f10x_lib.c”、“stm32f10x_rcc.c”四個文件; (4)給src 添加“main.c”; (5)給interrupt 添加“stm32f10x_it.c”; (6)以上操作完畢之后,應該得到如下界面(請在main.c 文件鍵入一個空 main 函數,如圖所示): 6、右鍵點擊Project 區的“MyFirstJob”,在彈出的菜單中選擇“Option for Target ‘MyFirstJob’…”, 彈出選項配置界面,如下所示: 7、按下F7(“Build”的快捷鍵),進行編譯。應該看到如下界面: 最下面的 Build Output 區是編譯信息框,可以從中獲取編譯信息,如代碼量,錯誤和警告信息等,我們可以發現此次編譯結果為“0Error(s),1Warning(s)”,即“0個錯誤,1個警告”,而我們可以看到這個警告的解釋為:“src\main.c(6):warning: #1-D: last line of file ends without anewline”,這是gcc編譯器一個很常見的警告,意思是當前文件(src\main.c)并不是以一個空行結尾(至于這個空行有什么意義筆者也不清楚),讀者只要在“main.c”的最后加上一個空行在編譯就可以去掉這個警告了。 8、一個完整的STM32 工程至此就完成建立了。可以發現“MyFirstJob”文件夾多了幾個文件,如下圖所示: 可以看到KEIL MDK的工程目錄是很簡潔的,此處也得益于我們的obj 文件夾和 list 文件夾存放了編譯所生成的大部分文件。但是此工程仍未可以用于進行 STM32的開發,原因是我們還未對 STM32 的調試開發工具進行設置,在下一節里將會有具體說明。 小結 本節介紹了 KEIL MDK 開發環境的特點以及 STM32 開發環境的建立過程,一切的 STM32開發應用都是從開發環境的搭建開始的。建議讀者多多練習,盡快熟悉STM32 開發環境的建立,為學習下一節的應用程序開發流程做好準備。 ----摘自文件內容較多,在此一一謝過原創作者,本文只供技術愛好者參考,非營利性質.
|