資料介紹
今日分享 GPIO 結(jié)合寄存器以及硬件電路,再來舉例子分析輸入輸出。
寄存器介紹:
通過寄存器的位標注 rw,我們可知這個寄存器的某個位是可讀(r)并且可寫 的(w),我們也可以通過讀寄存器里面的值得到引腳的配置信息,如果寄存器的 位標注只有 r 或者 w,那么就代表這個寄存器的這個位只能進行讀(r)或者寫(w)
復(fù)位后 IO 口寄存器的值每一位可能不都是一樣的,也就是說復(fù)位后 IO 口的 狀態(tài)、工作模式等不完全相同,一定要注意

模式配置寄存器 GPIOx_MODER,右上角用藍色圓圈標識的地方告訴我們 IO 口的復(fù)位值,可以看到復(fù)位后對于 A 組 IO 口來說初始值 0XA8000000,對于 B 組 IO 口初始值為 0x00000280,其他組 IO 口都是 0。該寄存器共 32 位,每 2 個位 控制 1 個 IO
如圖中左下角劃藍線的為第 0 位和第 1 位。通過往第 0 位寫 0,第 1 位寫 0 配置成 Input Mode(輸入模式),通過往第 0 位寫 0,第 1 位寫 1 配置成 General purpose output Mode(普通輸出模式),通過往第 0 位寫 1,第 1 位寫 0 配置 成 Alternate function Mode(復(fù)用功能模式),通過往第 0 位寫 1,第 1 位寫 1 配置成 Analog Mode(模擬模式)
例如我們要把這個寄存器第 0 位寫 1,其他都寫 0,表示如下:
GPIOA->MODER |= 0x00000001;
這就相當于把 A 組的 PA0 口配置成了普通輸出模式,其他 IO 口配置成了輸入模 式

GPIOx_OTYPER 寄存器用于控制 IO 的輸出類型,僅用于輸出模式,在輸 入模式下不起作用。該寄存器低 16 位(第 0 位-第 15 位)有效,每一個位控制 一個 IO 口,根據(jù)往不同的位寫 1(開漏輸出)/寫 0(推挽輸出)來配置成不同的 輸出模式。復(fù)位后,該寄存器值均為 0,即默認為推挽輸出
例如我們往 A 組 IO 口的第 0 位寫 1 那就將 PA0 成開漏輸出模式:
GPIOA->OTYPER |= 0x00000001;

GPIOx_OSPEEDR 寄存器用于控制 IO 的輸出速度,僅用于輸出模式,在輸 入模式下不起作用。該寄存器每 2 個位控制一個 IO 口,根據(jù)往不同的位寫 1/ 清 0 不同的位來配置成不同的模式。復(fù)位后對于 A 口來說初始值為 0X0C000000, 對于 B 口初始值 0x000000C0,其他口都是 0
例如我們往 A 組 IO 口的第 0 位和第 1 位寫 1 那就將 PA0 成高速輸出模式: GPIOA->OSPEEDR |= 0x00000003;
GPIOx_PUPDR 寄存器用于控制 IO 的上拉/下拉,該寄存器每 2 個位控制 一個 IO 口, 用于設(shè)置上下拉,根據(jù)往不同的位寫 1/清 0 不同的位來配置成不 同的模式。復(fù)位后對于 A 口來說初始值為 0X64000000,對于 B 口初始值 0x00000100,其他口都 0x0C000000
例如我們往 A 組 IO 口的第 0 位寫 1 那就將 PA0 下拉模式: GPIOA->PUPDR |= 0x00000001;
GPIOx_ODR 寄存器是 IO 口的輸出數(shù)據(jù)寄存器,寄存器低 16 位(第 0 位- 第 15 位)有效,寄存器每 1 個位控制一個 IO 口, 也就是這個里面位的狀態(tài) 代表了單片機輸出的狀態(tài),根據(jù)往不同的位寫 1/清 0 不同的位來配置成不同的 模式。復(fù)位后都是 0
例如我們往 A 組 IO 口的第 0 位寫 1 那 PA0 就輸出高: GPIOA->0DR |= 0x00000001;
對于一些其他的寄存器大家可以去參考數(shù)據(jù)手冊,按照上面講述的方法去配 置
硬件設(shè)計:

圖示LED燈部分我們用到了B組的2PIN(腳的簡稱)和4PIN, C組的15PIN, D 組的 8PIN, E 組的 8PIN 和 9PIN
LED 燈硬件的設(shè)計決定了 LED 燈的驅(qū)動方法,LED 燈相當于一個發(fā)光二 極管,如果單片機引腳輸出高,則二極管的左邊和右邊電壓相同,不亮,反之單 片機輸出低,右邊電壓大于左邊電壓通過單片機內(nèi)部電路形成回路點亮二極管, 那麼通過控制引腳輸出的高低就控制了 LED 燈的亮滅
完整版技術(shù)文檔請點擊文章開頭普通下載
- 單片機學習之GPIO
- STM32學習筆記---GPIO
- 【STM32】標準庫與HAL庫對照學習教程特別篇--GPIO詳講
- 00_STM32F4學習_HAL庫_GPIO函數(shù)
- STM32MP157系列教程連載-Cortex-M4開發(fā)篇2:STM32MP1微控制器之GPIO編程
- STM32學習筆記1——軟硬件基礎(chǔ)之keil5編程與GPIO開發(fā)
- STM32H7學習之路繼續(xù)(stm32H7系列3) GPIO
- 2、【STM32F0系列學習】之—通用輸入輸出端口(GPIO)
- STM32F407標準庫學習筆記-GPIO
- STM32-GPIO篇
- STM32單片機GPIO學習
- MCU學習筆記_GPIO工作原理
- DSP之gpio_loopback教程 14次下載
- DSP之Gpio教程 8次下載
- STM32深入淺出之新手篇 128次下載
- STM32 GPIO的八種工作模式 1278次閱讀
- STM32之紅外遙控信號自學習實現(xiàn) 3556次閱讀
- STM32的GPIO在實際開發(fā)設(shè)計的使用配置和技巧 1018次閱讀
- i.MX6ULL學習筆記:GPIO按鍵輸入捕獲 1350次閱讀
- STM32的GPIO工作方式與基本結(jié)構(gòu) 1871次閱讀
- STM32的GPIO使用 4596次閱讀
- STM32的八種GPIO工作方式詳解 9215次閱讀
- 如何將STM32單片機的JTAG口作為GPIO使用 4883次閱讀
- 基于STM32單片機流水燈控制中的GPIO_Init()函數(shù)解析 7381次閱讀
- 基于單片機STM32 GPIO 基本簡單操作函數(shù)教程 3383次閱讀
- 嵌入式學習之GPIO接口詳解 6617次閱讀
- 基于stm32f103zet6之NRF905無線模塊的學習 1w次閱讀
- STM32的GPIO輸出編程實例之點亮三色LED 2.8w次閱讀
- STM32之的GPIO推挽輸出與開漏輸出的區(qū)別 1.5w次閱讀
- 《振南電子STM32視頻教程》第七講:STM32的GPIO和AFIO的配置和應(yīng)用 1373次閱讀
下載排行
本周
- 1U盤一鍵制作
- 23.84 MB | 3次下載 | 免費
- 2Multisim模擬電路仿真教程
- 1.93 MB | 1次下載 | 1 積分
- 3ch341驅(qū)動
- 0.18 MB | 1次下載 | 免費
- 4貼片電阻阻值代號
- 0.08 MB | 1次下載 | 1 積分
- 5DS-CM5A H24-CN-V2
- 524.28 KB | 1次下載 | 免費
- 6基于Linux的液晶顯示屏驅(qū)動技術(shù)的研究與應(yīng)用
- 14.59 MB | 次下載 | 1 積分
- 7研華AIMB-275工控主板用戶手冊
- 3.11 MB | 次下載 | 1 積分
- 8ST NPI 新上架產(chǎn)品【DCP0606Y】
- 1.35 MB | 次下載 | 免費
本月
- 1人形機器人電機驅(qū)動和傳感報告
- 4.27 MB | 60次下載 | 免費
- 2晶體三極管的電流放大作用詳細說明
- 0.77 MB | 32次下載 | 2 積分
- 3九陽豆?jié){機高清原理圖
- 2.47 MB | 31次下載 | 1 積分
- 4雙極型三極管放大電路的三種基本組態(tài)的學習課件免費下載
- 4.03 MB | 25次下載 | 1 積分
- 5多級放大電路的學習課件免費下載
- 1.81 MB | 21次下載 | 2 積分
- 6Altium Designer元件庫
- 17.11 MB | 11次下載 | 免費
- 7STM32F10xxx單片機編程手冊
- 0.29 MB | 5次下載 | 免費
- 8HT8691R內(nèi)置BOOST升壓模塊的D類音頻功率放大器中文手冊
- 1.77 MB | 4次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191382次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183339次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論