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

模式配置寄存器 GPIOx_MODER,右上角用藍(lán)色圓圈標(biāo)識的地方告訴我們 IO 口的復(fù)位值,可以看到復(fù)位后對于 A 組 IO 口來說初始值 0XA8000000,對于 B 組 IO 口初始值為 0x00000280,其他組 IO 口都是 0。該寄存器共 32 位,每 2 個位 控制 1 個 IO
如圖中左下角劃藍(lán)線的為第 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;
這就相當(dāng)于把 A 組的 PA0 口配置成了普通輸出模式,其他 IO 口配置成了輸入模 式

GPIOx_OTYPER 寄存器用于控制 IO 的輸出類型,僅用于輸出模式,在輸 入模式下不起作用。該寄存器低 16 位(第 0 位-第 15 位)有效,每一個位控制 一個 IO 口,根據(jù)往不同的位寫 1(開漏輸出)/寫 0(推挽輸出)來配置成不同的 輸出模式。復(fù)位后,該寄存器值均為 0,即默認(rèn)為推挽輸出
例如我們往 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) 代表了單片機(jī)輸出的狀態(tài),根據(jù)往不同的位寫 1/清 0 不同的位來配置成不同的 模式。復(fù)位后都是 0
例如我們往 A 組 IO 口的第 0 位寫 1 那 PA0 就輸出高: GPIOA->0DR |= 0x00000001;
對于一些其他的寄存器大家可以去參考數(shù)據(jù)手冊,按照上面講述的方法去配 置
硬件設(shè)計(jì):

圖示LED燈部分我們用到了B組的2PIN(腳的簡稱)和4PIN, C組的15PIN, D 組的 8PIN, E 組的 8PIN 和 9PIN
LED 燈硬件的設(shè)計(jì)決定了 LED 燈的驅(qū)動方法,LED 燈相當(dāng)于一個發(fā)光二 極管,如果單片機(jī)引腳輸出高,則二極管的左邊和右邊電壓相同,不亮,反之單 片機(jī)輸出低,右邊電壓大于左邊電壓通過單片機(jī)內(nèi)部電路形成回路點(diǎn)亮二極管, 那麼通過控制引腳輸出的高低就控制了 LED 燈的亮滅
完整版技術(shù)文檔請點(diǎn)擊文章開頭普通下載
- 單片機(jī)學(xué)習(xí)之GPIO
- STM32學(xué)習(xí)筆記---GPIO
- 【STM32】標(biāo)準(zhǔn)庫與HAL庫對照學(xué)習(xí)教程特別篇--GPIO詳講
- 00_STM32F4學(xué)習(xí)_HAL庫_GPIO函數(shù)
- STM32MP157系列教程連載-Cortex-M4開發(fā)篇2:STM32MP1微控制器之GPIO編程
- STM32學(xué)習(xí)筆記1——軟硬件基礎(chǔ)之keil5編程與GPIO開發(fā)
- STM32H7學(xué)習(xí)之路繼續(xù)(stm32H7系列3) GPIO
- 2、【STM32F0系列學(xué)習(xí)】之—通用輸入輸出端口(GPIO)
- STM32F407標(biāo)準(zhǔn)庫學(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之紅外遙控信號自學(xué)習(xí)實(shí)現(xiàn) 3556次閱讀
- STM32的GPIO在實(shí)際開發(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 基本簡單操作函數(shù)教程 3383次閱讀
- 嵌入式學(xué)習(xí)之GPIO接口詳解 6617次閱讀
- 基于stm32f103zet6之NRF905無線模塊的學(xué)習(xí) 1w次閱讀
- STM32的GPIO輸出編程實(shí)例之點(diǎn)亮三色LED 2.8w次閱讀
- STM32之的GPIO推挽輸出與開漏輸出的區(qū)別 1.5w次閱讀
- 《振南電子STM32視頻教程》第七講:STM32的GPIO和AFIO的配置和應(yīng)用 1373次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論