本文是根據江協科技提供的教學視頻所寫,旨在便于日后復習,同時供學習嵌入式的朋友們參考,文中涉及到的所有資料也均來源于江協科技(資料下載)。
新建工程并使用寄存器以及庫函數進行點燈操作
- 新建工程步驟
- 1.建立工程
- 2.配置寄存器進行點燈操作
- 3.添加庫函數
- 使用庫函數進行點燈操作
新建工程步驟
- 建立工程文件夾,Keil中新建工程,選擇型號
- 工程文件夾中建立Start、Library、User等文件夾,復制固件庫里的文件到工程文件夾
- 在工程里對應建立Start、Library、User等同名稱的分組,然后將文件夾內的文件添加到工程分組里(Keil不能直接添加文件夾,所以需要建立組進行添加相應文件。.h文件不參與編譯過程,但是為了方便看,也加入了.h文件)
- 工程選項中,C/C++, Include Paths內需要聲明所有包含頭文件的文件夾(Start、Library都是自己建的,Keil軟件并不知道,所以必須申明路徑,將所有新建文件夾都進行申明,這樣不會出現.h文件找不到的情況)
- 工程選項中,C/C++, Define內定義USE_STDPERIPH_DRIVER(使用庫函數就必須定義USE_STDPERIPH_DRIVER)
- 工程選項中,Debug, 下拉列表選擇對應調試器,Settings,Flash Download里勾選Reset and Run
conf.h包含了所有庫函數的頭文件
在stm32f10x.h最后包含了conf.h,所以在使用庫函數時,只需要包含stm32f10x.h這一頭文件,就相當于包含了所有庫函數的頭文件
1.建立工程
建立工程文件夾,Keil中新建工程,選擇型號
STM32是從啟動文件開始執行的,所以新建工程時首先加的就是啟動文件。啟動文件有很多類,需要根據芯片型號選擇對應的啟動文件。STM32F103需要選擇帶有LD、MD、HD、XL的啟動文件
找到STM32的啟動文件,復制所有的啟動文件
在工程文件目錄下新建一個文件夾Start,用來存放啟動文件
回到固件庫中STM32F10x目錄下,復制下面三個文件到剛剛新建的文件夾Start中
cm3文件是內核寄存器的描述,同樣復制到Start目錄下
此時,你的新建文件夾中應該包含這些文件
在Keil5中,將Source Group1重命名為Start(選中,單擊進行修改),右鍵Add Existing Files to Group’Start’
CTRL選中所有.c以及.h文件,點擊添加,添加好的文件如下,這些文件是只讀文件
接著需要在工程選項里添加Start文件夾的頭文件路徑,否則無法找到.h文件
這樣就添加好了該文件夾的頭文件路徑
寫一個main函數測試該工程是否可行。打開工程文件夾,新建一個User文件夾
右鍵Target 1,點擊Add Group,新建好的組改為User
右鍵User,點擊Add New item to Group ‘user’
在main.c中右鍵插入頭文件
文件的最后一行必須是空行,否則會warning。寫好之后點擊編譯變建立工程按鈕,0 Error,0 Warning說明工程沒有問題
該工程目前是一個基于寄存器開發STM32的工程(還沒有添加STM32的庫函數)
2.配置寄存器進行點燈操作
如何調整字體
為了防止中文亂碼問題,選擇UTF-8編碼
按照下圖進行連接,STLINK插在電腦上,電源燈應該會常亮,另一個連接在PC13口上的燈默認閃爍狀態
在Keil中配置調試器
重新編譯,沒有錯誤
點擊Load,程序會下載到STM32中,板子的燈不再閃爍
以上就是通過配置寄存器進行點燈的過程,需要不斷查詢手冊進行配置,比較麻煩
3.添加庫函數
為了存放庫函數,在工程文件目錄下新建文件夾Library
找到固件庫目錄下的src以及inc,將目錄下內容全部復制到工程文件目錄下新建的Library中
在Keil5中右鍵Target新建組,改名為Library,右鍵Add Existing Files to Group’Start’,CTRL全部添加。這樣就添加好了所有的庫函數文件,但是還不能使用
在固件庫目錄下找到STM32F10x_StdPeriph_Template文件,復制以下三個文件
將復制的三個文件添加到工程目錄下User文件夾中
在User組中添加剛剛復制的三個文件
最后還需要一個宏定義,右鍵打開文件
找到 USE_STDPERIPH_DRIVER
基于庫函數的工程就建好了
我們只能對User組中的文件修改,通過以下步驟可以更改文件夾順序
使用庫函數進行點燈操作
右鍵可以跳轉到函數定義,選中,使用CTRL F,查找
經過函數的包裝,就不需要查詢手冊來確定某一位的功能,而且庫函數的配置不會影響到寄存器的其他位。只需要調用庫函數,按照提示,填好參數即可