本文介紹了學(xué)習(xí)微控制器外圍功能的六部分系列中的第一部分,該系列是 GPIO(通用輸入/輸出)。它討論了重要的外圍設(shè)備,即 GPIO,以及使用 GR-SAKURA 和編程提示對 GPIO 進(jìn)行編程,以防止“顫動”或由開關(guān)移動引起的某種程度的快速振動。
CPU 和內(nèi)存是大腦。外圍設(shè)備是 Brawn。
MCU(微控制器)廣泛用于控制所有類型的電子設(shè)備。正如我們在之前的“微控制器簡介”系列中所解釋的那樣,MCU 由 CPU(中央處理單元)、存儲器和實(shí)現(xiàn)各種外設(shè)支持功能的附加電路組成(見圖 1)。CPU通過讀取程序和以下指令進(jìn)行操作:讀取數(shù)據(jù)、進(jìn)行計算和比較、根據(jù)比較結(jié)果生成其他操作等指令。內(nèi)存的作用不僅是存儲數(shù)據(jù),還包括程序本身。
重要外設(shè):GPIO 端口
GPIO(通用輸入/輸出)端口處理傳入和傳出的數(shù)字信號。作為輸入端口,它可用于將從開關(guān)接收到的 ON/OFF 信號或從傳感器接收到的數(shù)字讀數(shù)與 CPU 進(jìn)行通信。作為輸出口,它可以根據(jù)CPU指令和計算結(jié)果驅(qū)動外部操作——例如,根據(jù)計算結(jié)果驅(qū)動LED顯示屏,或者輸出驅(qū)動信號給電機(jī)。
GPIO 被稱為“通用”,因?yàn)槊總€引腳都可以自由設(shè)置為用作輸入或輸出。在早期的 MCU 中,每個端口要么專門輸入,要么專門輸出。然而,GPIO 是靈活的。如果它有 8 個引腳,您可以將它們設(shè)置為最適合您的需要:4 輸入 4 輸出,或 7 輸入 1 輸出,或任何其他組合。
請注意,當(dāng)程序讀取、寫入和操作數(shù)字值(0 和 1)時,外部設(shè)備通常使用信號電平:低電壓和高電壓。GPIO 處理兩個方向的必要轉(zhuǎn)換。讓我們看看 RX63N 的 GPIO 使用的基本寄存器 (*1)(見圖 2)。
使用 GR-SAKURA 對 GPIO 進(jìn)行編程
為了獲得 GPIO 端口如何工作的一些實(shí)踐知識,讓我們編寫一個程序,通過點(diǎn)亮 LED 來響應(yīng)按下開關(guān)。我們將使用 Sakura 的“數(shù)字 I/O”庫來方便我們的編程。
圖 3 顯示了根據(jù)開關(guān)值打開和關(guān)閉指定 LED(LED 0)的程序代碼,其中 GPIO 端口用于獲取開關(guān)設(shè)置和發(fā)送 LED 開/關(guān)信號。該程序以調(diào)用 pinMode 函數(shù) (1) 的設(shè)置函數(shù)開始,該函數(shù)將連接到開關(guān)的引腳設(shè)置為輸入模式,將連接到 LED 的引腳設(shè)置為輸出模式。我們在這里使用設(shè)置函數(shù),因?yàn)橐_模式設(shè)置必須只進(jìn)行一次。
編程提示:防止“喋喋不休”引起的問題
開關(guān)通過完成(閉合)或阻斷(打開)電路來工作:當(dāng)開關(guān)閉合時電流流動,而當(dāng)它打開時不流動。然而,由于開關(guān)是機(jī)械裝置,因此不能依靠它以瞬時和干凈的方式改變電路狀態(tài)。相反,開關(guān)的移動總是會產(chǎn)生某種程度的快速振動,這會導(dǎo)致短暫的中間“顫動”階段,在該階段電路在穩(wěn)定到正確狀態(tài)之前快速循環(huán)打開和關(guān)閉。您可能想嘗試運(yùn)行以下程序(圖 4)以更好地了解實(shí)際中的喋喋不休。
所需的操作是使 LED 在按下和松開開關(guān)時平穩(wěn)地亮起和熄滅。但這會一直發(fā)生嗎?如果在抖動過程中讀取開關(guān)信號,結(jié)果是不可預(yù)測的。這就是我們在圖 3 所示的程序中引入“顫動”延遲的原因。
編輯:hfy
-
傳感器
+關(guān)注
關(guān)注
2566文章
53008瀏覽量
767562 -
led
+關(guān)注
關(guān)注
242文章
23847瀏覽量
674215 -
數(shù)字信號
+關(guān)注
關(guān)注
2文章
997瀏覽量
48373 -
GPIO
+關(guān)注
關(guān)注
16文章
1280瀏覽量
54121
發(fā)布評論請先 登錄
NCA9555 具有16位通用并行I2C總線數(shù)輸入輸出GPIO擴(kuò)展功能
HTR3316 16路LED驅(qū)動器和GPIO控制器中文手冊
單片機(jī)學(xué)習(xí)之GPIO
GPIO使用教程 GPIO接口應(yīng)用
CY8C40xx系列32 位 PSOC? Arm? Cortex? 微控制器Cypress
GPIO錯誤排查與解決
GPIO在物聯(lián)網(wǎng)中的應(yīng)用
如何配置GPIO引腳
DL-T846.5-2004高電壓測試設(shè)備通用技術(shù)條件第5部分:六氟化硫微量水分儀
DL-T846.6-2004高電壓測試設(shè)備通用技術(shù)條件第6部分:六氟化硫氣體檢漏儀
gpio接口是干什么的 gpio四種輸入輸出模式怎么選擇

STM32 GPIO八種模式及工作原理詳解

評論