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


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

評(píng)論