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

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

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

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

圖示LED燈部分我們用到了B組的2PIN(腳的簡(jiǎn)稱(chēng))和4PIN, C組的15PIN, D 組的 8PIN, E 組的 8PIN 和 9PIN
LED 燈硬件的設(shè)計(jì)決定了 LED 燈的驅(qū)動(dòng)方法,LED 燈相當(dāng)于一個(gè)發(fā)光二 極管,如果單片機(jī)引腳輸出高,則二極管的左邊和右邊電壓相同,不亮,反之單 片機(jī)輸出低,右邊電壓大于左邊電壓通過(guò)單片機(jī)內(nèi)部電路形成回路點(diǎn)亮二極管, 那麼通過(guò)控制引腳輸出的高低就控制了 LED 燈的亮滅
完整版技術(shù)文檔請(qǐng)點(diǎn)擊文章開(kāi)頭普通下載
- 單片機(jī)學(xué)習(xí)之GPIO
- STM32學(xué)習(xí)筆記---GPIO
- 【STM32】標(biāo)準(zhǔn)庫(kù)與HAL庫(kù)對(duì)照學(xué)習(xí)教程特別篇--GPIO詳講
- 00_STM32F4學(xué)習(xí)_HAL庫(kù)_GPIO函數(shù)
- STM32MP157系列教程連載-Cortex-M4開(kāi)發(fā)篇2:STM32MP1微控制器之GPIO編程
- STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)之keil5編程與GPIO開(kāi)發(fā)
- STM32H7學(xué)習(xí)之路繼續(xù)(stm32H7系列3) GPIO
- 2、【STM32F0系列學(xué)習(xí)】之—通用輸入輸出端口(GPIO)
- STM32F407標(biāo)準(zhǔn)庫(kù)學(xué)習(xí)筆記-GPIO
- STM32-GPIO篇
- STM32單片機(jī)GPIO學(xué)習(xí)
- MCU學(xué)習(xí)筆記_GPIO工作原理
- DSP之gpio_loopback教程 14次下載
- DSP之Gpio教程 8次下載
- STM32深入淺出之新手篇 128次下載
- STM32 GPIO的八種工作模式 1278次閱讀
- STM32之紅外遙控信號(hào)自學(xué)習(xí)實(shí)現(xiàn) 3556次閱讀
- STM32的GPIO在實(shí)際開(kāi)發(fā)設(shè)計(jì)的使用配置和技巧 1018次閱讀
- i.MX6ULL學(xué)習(xí)筆記:GPIO按鍵輸入捕獲 1350次閱讀
- STM32的GPIO工作方式與基本結(jié)構(gòu) 1871次閱讀
- STM32的GPIO使用 4596次閱讀
- STM32的八種GPIO工作方式詳解 9215次閱讀
- 如何將STM32單片機(jī)的JTAG口作為GPIO使用 4883次閱讀
- 基于STM32單片機(jī)流水燈控制中的GPIO_Init()函數(shù)解析 7381次閱讀
- 基于單片機(jī)STM32 GPIO 基本簡(jiǎn)單操作函數(shù)教程 3383次閱讀
- 嵌入式學(xué)習(xí)之GPIO接口詳解 6617次閱讀
- 基于stm32f103zet6之NRF905無(wú)線(xiàn)模塊的學(xué)習(xí) 1w次閱讀
- STM32的GPIO輸出編程實(shí)例之點(diǎn)亮三色LED 2.8w次閱讀
- STM32之的GPIO推挽輸出與開(kāi)漏輸出的區(qū)別 1.5w次閱讀
- 《振南電子STM32視頻教程》第七講:STM32的GPIO和AFIO的配置和應(yīng)用 1373次閱讀
-
--文章
-
--閱讀
-
--粉絲
下載排行
本周
- 1人形機(jī)器人電機(jī)驅(qū)動(dòng)和傳感報(bào)告
- 4.27 MB | 9次下載 | 免費(fèi)
- 2Altium Designer元件庫(kù)
- 17.11 MB | 6次下載 | 免費(fèi)
- 324V2A開(kāi)關(guān)電源PCB資料分享
- 0.23 MB | 4次下載 | 1 積分
- 4GD100PIX120C6SNA規(guī)格書(shū)
- 0.98 MB | 3次下載 | 免費(fèi)
- 5用MT3540芯片設(shè)計(jì)BOOST電路 3(可下載)
- 412.20 KB | 1次下載 | 免費(fèi)
- 6FS5282 5V升壓充電兩串鋰電池充電管理IC中文手冊(cè)
- 4.62 MB | 1次下載 | 免費(fèi)
- 7BK7258英文規(guī)格書(shū)
- 1.67 MB | 1次下載 | 免費(fèi)
- 8RA4L1硬件手冊(cè)
- 21.89 MB | 1次下載 | 免費(fèi)
本月
- 1晶體三極管的電流放大作用詳細(xì)說(shuō)明
- 0.77 MB | 32次下載 | 2 積分
- 2雙極型三極管放大電路的三種基本組態(tài)的學(xué)習(xí)課件免費(fèi)下載
- 4.03 MB | 25次下載 | 1 積分
- 3AIWA HS-J303 MKⅡ維修手冊(cè)
- 22.47 MB | 24次下載 | 10 積分
- 4九陽(yáng)豆?jié){機(jī)高清原理圖
- 2.47 MB | 23次下載 | 1 積分
- 5多級(jí)放大電路的學(xué)習(xí)課件免費(fèi)下載
- 1.81 MB | 21次下載 | 2 積分
- 6AIWA HS-J202/HS-J202M/HS-J800維修手冊(cè)
- 13.60 MB | 16次下載 | 10 積分
- 71875功放原理圖
- 0.04 MB | 11次下載 | 免費(fèi)
- 8單電源板1875電路圖
- 0.06 MB | 11次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191382次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183338次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評(píng)論