上一節介紹了如何創建一個空白的庫函式工程模板,那么本章,筆者通過使用韌體庫在WB32開發板上點亮LED燈,讓大家走進WB32韌體庫開發的世界,
本章內容重在教會初學者快速上手WB32韌體庫開發,其中部分原理細節不過多探究,只要大家能夠根據教程循序漸進的學習,那么掌握WB32韌體庫開發并根據基礎教程開發專案也就信手拈來了,
如果是第一次接觸WB32韌體庫編程的小伙伴,建議在評論區下載例程對照文章進行學習,熟悉后即可自己動手完成代碼的撰寫,
4.1使用韌體庫點亮LED硬體設計
在本章教程中,我們要點亮開發板上的LED燈,
從WB32最小系統原理圖中,可以看到上方的LED正極接在3.3V供電上,負極連接GND,單片機上電后即可點亮,即上方的紅色LED為電源指示燈,下方的LED正極接在3.3V供電上,負極連接PC13,我們只需控制該GPIO引腳的電平輸出狀態,即可控制相對應LED的亮滅,
如果你不想使用板載LED進行實驗,也可使用面包板對應下圖LED電路進行搭建,想要使用低電平點亮LED僅需按照下方圖示連接,想要使用高電平點亮則需將LED負極接地,LED正極連接在開發板GPIO上,注意,無論使用任何點亮方法,務必在電路中串聯一個合適的電阻,以免啥訓LED,
(最小系統原理圖檔案放在文末下載鏈接當中)
4.2使用韌體庫點亮LED軟體設計
在撰寫代碼時,初學者往往按照從上到下的順序來撰寫程式,寥寥幾行的代碼還易觀看,而工程一旦復雜,在前期程式的撰寫和后期的代碼維護就會變得例外復雜,
所以,為了使工程更加有條理,我們需要將控制LED的程式代碼獨立存盤,方便閱讀和未來的移植作業,
接下來,復制一份空白工程模板到桌面(或你覺得合適的位置,最好不要放在中文目錄下),進入USER目錄下,并新建名為" led " 的檔案夾,在" led “檔案夾下,新建兩個文本檔案,并分別重命名為"bsp_led.c"與"bsp_led.h”(檔案夾及檔案名亦可按照自己的習慣命名,并無強制要求,補充說明:創建新檔案亦可直接在KEIL中點擊空白檔案進行保存創建,達到目的即可),


接下來進入Project檔案夾中,點擊工程檔案進入工程,


進入MDK工程中,將滑鼠移至USER處,右擊滑鼠點擊“ Add existing Files To Group ‘User’ ”找到"bsp_led.c"檔案位置并添加,

添加后

但此時是看不到bsp_led.h檔案的,首先在bsp_led.c檔案中撰寫如下代碼

此時編譯檔案會報錯,顯示

我們上一章介紹了如何包含頭檔案這個問題,如果不會可以參考一下,也可留言討論,
4.2.1編程要點
1)使能GPIO時鐘并初始化GPIO埠
2)撰寫簡單測驗程式,控制GPIO輸出高低電平來控制LED的亮滅狀態,
沒有接觸過韌體庫開發的朋友們可能剛上手理解會有困難,不用擔心,目前最主要的是點亮這個LED燈,
4.2.2代碼分析
1)LED引腳宏定義
在撰寫程式時,為了后續修改和移植程式方便,在修改程式時不至于“牽一發而動全身”,可以把硬體相關的部分使用宏來封裝,
所謂“宏”可以這樣理解:周樹人在酒店喝酒時被團團圍住,帶隊的軍官說要抓周樹人,周樹人淡定回答:“你們抓周樹人關我魯迅什么事?”然后逃過一劫,
在程式當中,宏就是“周樹人”,而筆名“魯迅”則是宏下的子類元素,宏下的元素可以按需修改,但宏定義好后在程式中起到的作用就像“周樹人”在社會中的作用,是穩定不變的,
硬體相關宏定義一般存盤在頭檔案中,即上一步建好的"bsp_led.h"中,

通過上述代碼,我們就把GPIO引腳號、GPIO埠以及GPIO埠時鐘封裝起來了,
在這部分學習中會有不少初學者很頭疼,GPIO_Pin_13是什么?GPIOC是什么?RCC_APB1Periph_GPIOC是什么?為什么一定要用這些名稱?筆者在剛剛接觸到時也是很頭疼,總覺得自己什么都不會,壓力好大,
實際上初學者只需按照教程跟著撰寫即可,細節原理會在后期教程中給大家一一講解,
2)控制LED亮滅翻轉的宏定義
為了方便控制LED,我們把LED的亮、滅和翻轉也定義成宏,

通過上述代碼,我們就把GPIO狀態翻轉(Toggle)、置位(Set)和復位(Reset)封裝起來了,想要具體了解函式的原理和作用請等待后續教程,
"bsp_led.h"頭檔案中全部代碼如下:

3)LED GPIO初始化函式

函式執行流程如下:
1.呼叫庫函式RCC_APB1PeriphClockCmd來使能LED的GPIO埠時鐘,
2.初始化GPIO,根據實際情況,呼叫GPIO_Init函式初始化GPIO引腳,如本例,想要通過改變GPIO引腳的輸出狀態來控制LED的亮滅,則需將GPIO初始化為高速推挽輸出模式、無上下拉,
3.呼叫GPIO_SetBits函式,將GPIO引腳置位為高電平,使LED默認關閉,
4)main函式

在main函式中,呼叫定義好的LED_GPIO_Config初始化LED控制引腳,然后才能呼叫控制LED亮滅的宏來實作LED的控制,
4.2.3下載驗證
在完成檔案的撰寫后,首先需要編譯,編譯成功沒有錯誤后即可點擊下載按鍵下載到開發板上觀察了,可以看到LED燈交替亮滅,
本節內容已經結束,這里給初學的同學布置一個小作業,請你幫忙找一找GPIOC、RCC_APB1Periph_GPIOC和GPIO_SetBits函式的定義在哪兒,(提示:滑鼠右擊函式名,Go To Def即可)
最小開發板原理圖下載地址:
鏈接:https://pan.baidu.com/s/1Mv8miSjpFl9kag4DUP2KeQ
提取碼:CSDN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/376011.html
標籤:其他
上一篇:貪心思想及其題目,來刷吧
