晶片型號:STM32f103c8t6
GPIO的使用
一:系統結構
由圖可見,所有GPIO,均在橋接1上(APB2),所以使用開發板上任何IO口都需要開啟APB2的時鐘。
二:GPIO輸入輸出模式
GPIO埠的每個位可以由軟體分別配置成多種模式。
─ 輸入浮空
─ 輸入上拉
─ 輸入下拉
─ 模擬輸入
─ 開漏輸出
─ 推輓式輸出
─ 推輓式複用功能
─ 開漏複用功能
主要介紹輸入下拉,輸入上拉,推輓式輸出。
一:推輓式輸出
推輓輸出就是微控制器引腳可以直接輸出高低電平。低電平時接地,高電平時輸出微控制器電源電壓。這種方式可以不接上拉電阻。但如果輸出端接地的話,這個時候輸出高電平可能引發微控制器執行不穩定,甚至可能燒壞引腳。
第一節中點亮板子上的LED燈就是推輓式輸出的一個例子
本節我們使用外接裝置進行實驗。
1:複製上一節的0-demo檔案,重新命名為gpio,
2:在HARDWARE資料夾中新建一個資料夾命名為gpio,並把資料夾裡的LED.c和LED.h複製到gpio資料夾中。
3:將LED.c和LED.h從新命名為gpio.c和gpio.h。
注:上面之所以為gpio建立資料夾是為了以後用更好地移植,(在其他工程中直接複製此資料夾修改需要的引數),大大減少了工作量。
4:之後開啟USER資料夾裡面的工程檔案,將gpio新增到我們的路徑中。
5:將gpio.c檔案新增到工程中。(這步在上一節介紹過,不重複了。)
6:把修改對應引數#include "gpio.h" ,編譯一下工程,此時會出錯,因為下面的LED_Init函式我們在LED.c檔案中定義過了,所以我們需要修改gpio.h從新定義一個gpio初始化函式。
7:修改gpio.h檔案中引數,注意看註釋。
8:修改gpio.c檔案中引數,注意看註釋。
注:開啟我們韌體庫使用手冊,找到gpio這一節,可看到gpio口可以配置為這些種模式,選擇我們需要的就可以。
9:主函式修改相應引數,編譯,編譯成功。下載到開發板。(操作步驟請看上一節)。
10:接線,PB12--LED小燈長腳(LED正極),開發板GND--LED斷腳(LED負極),效果如圖。我們串聯了限流電阻。
11:引入延時函式。系統自帶的延時函式很精準。編譯通過後下載,led閃爍。
一些騷操作
:開啟程式碼提示功能。單擊圖中的扳手,選擇text completion,按照圖中設定。
這時我們返回主函式,我們只需要敲少量程式碼就可以自動獲得系統中所帶的函式,或以定義的變數,
教程更新完之後所有原始碼,及相關檔案,都會上傳到百度雲,歡迎大家關注點贊。
(黑龍江科技大學-機器人協會)