當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一、Cortex M3的GPIO口特性 在介紹GPIO口功能前,有必要先說明一下M3的結(jié)構(gòu)框圖,這樣能夠更好理解總線結(jié)構(gòu)和GPIO所處的位置。Cortex M3結(jié)構(gòu)框圖 從圖中可以看出,GPIO口都是接在APB總線上的,而且M3具有兩個AHB到

一、Cortex M3的GPIO口特性
在介紹GPIO口功能前,有必要先說明一下M3的結(jié)構(gòu)框圖,這樣能夠更好理解總線結(jié)構(gòu)和GPIO所處的位置。

Cortex M3結(jié)構(gòu)框圖

從圖中可以看出,GPIO口都是接在APB總線上的,而且M3具有兩個AHB到APB橋,GPIO則直接接在AHB矩陣上,這樣可以減少CPU和DMA控制器之間的競爭沖入,獲得較高性能。APB總線橋配置為寫緩沖區(qū),使得CPU或DMA控制器可直接操作APB外設(shè),而無需等待總線寫操作完成。

M3數(shù)字I/O功能:
高速GPIO口,其寄存器被移到外設(shè)AHB總線,可以字節(jié),半字和字尋址。
位電平置位和清零寄存器允許單指令置位和清零一個端口的任意位。
所有GPIO口寄存器支持M3位帶操作。
整個端口值可以用一條指令寫入。
GPIO口寄存器可由GPDMA控制器進(jìn)行訪問,可以進(jìn)行DMA數(shù)據(jù)操作,使之與DMA請求同步。
單個I/O口方向可以控制。
所有I/O口在復(fù)位后默認(rèn)作為上拉輸入。(Why?因?yàn)槲⒖刂破鬟B接了很多設(shè)備,如果復(fù)位后作為輸出,則由于控制器電平狀態(tài)不定,可能會導(dǎo)致外圍設(shè)備產(chǎn)生動作,從而產(chǎn)生不利影響,故復(fù)位后一半都作為輸入狀態(tài)。)
M3可產(chǎn)生中斷的數(shù)字端口:
PORT0 和 PORT2 端口的每個引腳都可以提供中斷功能;
每個端口上的中斷可被編程為上升沿、下降沿或邊沿產(chǎn)生中斷;
邊沿檢測是異步的,因此可以在沒有時鐘的情況下(例如掉電模式)操作。使用這種特性,就無需電平觸發(fā)中斷;
可掉電喚醒;
寄存器為軟件提供掛起的上升沿中斷、掛起的下降沿中斷和整個掛起的 GPIO中斷;
GPIO0 和 GPIO2 中斷與外部中斷 3 事件共用相同的 NVIC 通道。
二、GPIO口的寄存器描述
Cortex M3引腳的寄存器描述:


PINMODEx表示引腳模式選擇寄存器,在使用前要配置好。

引腳模式選擇寄存器位

PINMODEx

功能

復(fù)位后的值

00

引腳使能上拉電阻

00

01

中繼模式

10

引腳無片內(nèi)上拉或下拉電阻

11

引腳使能下拉電阻


中繼模式說明:當(dāng)引腳處于邏輯高電平,中繼模式能使能上拉電阻;當(dāng)引腳處于邏輯低電平時,中繼模式會使能下拉電阻,這樣當(dāng)引腳配置為輸入且沒有外部驅(qū)動時,能夠保持上一個已知狀態(tài)。
PINSELx:功能選擇寄存器。用來設(shè)定PORT引腳的功能,當(dāng)PINSELx各位為0時,才用作GPIO
端口。
FIOxDIR:GPIO口方向寄存器,單獨(dú)控制每個端口管腳的方向,可作為字節(jié)(8位),半字(16位)和字長(32位)的數(shù)據(jù)進(jìn)行訪問。
FIOxMASK:屏蔽寄存器。任何寫、讀的操作只在該寄存器對應(yīng)位為“0“時才有效。

FIOxPIN:管腳值寄存器。只要管腳不配置為ADC,其他所有方式都可以從該位讀出端口當(dāng)前的實(shí)際狀態(tài)。注:如果讀FIOPIN寄存器,那么不管物理引腳的狀態(tài)如何,在 FIOMASK
寄存器中被“1”屏蔽的位將始終讀出0。

FIOxSET:輸出引腳的狀態(tài)。寫 1 使相應(yīng)的端口引腳產(chǎn)生高電平。寫 0 沒有影響。讀該寄存器返回端口輸出寄存器的當(dāng)前內(nèi)容。只可以更改 FIOMASK 中為 0 的位,即非屏蔽位。

FIOxCLR:控制輸出引腳的狀態(tài)。寫 1 使相應(yīng)的端口引腳產(chǎn)生低電平。寫 0 沒有影響。只可以更改 FIOMASK 中為 0 的位,即非屏蔽位。
2.1GPIO端口方向寄存器FIOxDIR(FIO0DIR??FIO4DIR- 0x2009 C000??0x2009 C080)
當(dāng)引腳被配置為 GPIO功能時,該寄存器可用來控制引腳的方向。勿必根據(jù)引腳功能來設(shè)置每個引腳的方向。
注:GPIO引腳 P0.29和P0.30 與USB D+/-引腳共用,并且具有相同的方向。如果FP0DIR位29或位30在FIO0DIR寄存器中被配置為零,則P0.29 和P0.30都為輸入。如果FP0DIR位29和位30被配置為1,則P0.29和P0.30都為輸出。

高速GPIO端口方向寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0DIR

FP1DIR

FP2DIR

FP3DIR

FP4DIR

0

1

控制的引腳為輸入引腳

控制的引腳為輸出引腳

0


字和半字的操作基本類似,只是可以通過8位寄存器或者16位的寄存器分別控制方向而已,這里不再解釋,請參看《深入淺出Cortex-M3 LPC1700》.

2.2GPIO端口輸出設(shè)置寄存器FIOxSET(FIO0SET??FIO7SET - 0x2009 C018??0x2009 C098)
當(dāng)引腳在輸出模式中被配置為 GPIO 時,該寄存器在端口引腳產(chǎn)生高電平輸出。向該寄存器的某些位寫入“1”時,對應(yīng)的引腳產(chǎn)生高電平。寫入“0”無效。如果需要引腳輸出低電平或第二種功能,那么寫 1 到 FIOxSET 的相應(yīng)位無效。 讀FIOxSET 寄存器返回該寄存器的值,該值由前一次對 FIOxSET 和 FIOxCLR(或前面提到的 FIOxPIN)的寫操作確定,它不反映任何外部環(huán)境對 I/O引腳的影響。 通過 FIOxSET 寄存器訪問的端口引腳受到 FIOxMASK 寄存器相應(yīng)位的限制。

高速GPIO端口輸出設(shè)置寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0SET

FP1SET

FP2SET

FP3SET

FP4SET

0

1

控制的引腳輸出不改變
控制的引腳輸出被設(shè)為高電平

0


2.3GPIO端口輸出清零寄存器FIOxCLR(FIO0CLR??FIO07CLR - 0x2009 C01C??0x2009 C09C)
當(dāng)引腳在輸出模式中被配置為 GPIO 時,該寄存器在端口引腳產(chǎn)生低電平輸出。向某些位寫入“1”會使相應(yīng)的引腳產(chǎn)生低電平,同時清零 FIOxSET 寄存器的相應(yīng)位。寫入“0”無效。如果引腳被配置為輸入或其它功能,那么寫 FIOxCLR 對引腳沒有影響。 通過FIOxCLR寄存器訪問的端口引腳受到FIOxMASK寄存器相應(yīng)位的限制.

高速GPIO端口輸出清零寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0CLR

FP1CLR

FP2CLR

FP3CLR

FP4CLR

0

1

控制的引腳輸出不改變
控制的引腳輸出被設(shè)為低電平

0


2.4GPIO端口引腳值寄存器FIOxPIN(FIO0PIN??FIO7PIN- 0x2009 C014??0x2009 C094)
該寄存器提供了端口引腳的值,可配置這些值來執(zhí)行僅為數(shù)字的功能。該寄存器將給出引腳的當(dāng)前邏輯值,而不管引腳是否配置為輸入或輸出,或作為 GPIO或作為其它可選的數(shù)字功能。
例如,特殊的端口引腳可能具有 GPIO輸入、GPIO 輸出、UART 接收和 PWM 輸出等可選功能。無論該引腳配置成何種功能,都可以從相應(yīng)的 FIOxPIN 寄存器中讀出其當(dāng)前的邏輯狀態(tài)。 如果引腳配置為模擬功能,當(dāng)選擇了模擬配置時,引腳狀態(tài)不能被讀出。將引腳選擇用作A/D輸入會斷開與引腳數(shù)字部分的連接。在這種情況下,從 FIOxPIN 寄存器中讀出的引腳值無效。
寫 FIOxPIN 寄存器時, FIOxPIN 寄存器的值會保存到端口輸出寄存器,而無需使用 FIOxSET和 FIOxCLR寄存器來獲得整個寫入值。由于這種特性影響整個端口,因此在應(yīng)用中時要小心。 通過 FIOxPIN 寄存器訪問的端口引腳受到 FIOxMASK 寄存器相應(yīng)位的限制。 只有在屏蔽寄存器中用0 屏蔽的引腳與高速 GPIO 端口引腳值寄存器的當(dāng)前內(nèi)容相互關(guān)聯(lián)。

高速GPIO端口引腳值寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0VAL

FP1VAL

FP2VAL

FP3VAL

FP4VAL

0

1

控制的引腳輸出設(shè)為低電平
控制的引腳輸出設(shè)為高電平

0


2.5高速GPIO端口屏蔽寄存器FIOxMASK (FIO0MASK??FIO7MASK - 0x2009 C010??0x2009 C090)
該寄存器用來屏蔽某些端口引腳,被屏蔽的引腳將無法通過 FIOxPIN、 FIOxSET 或 FIOxCLR寄存器寫訪問。當(dāng)讀FIOxPIN 寄存器時,屏蔽寄存器還將過濾相應(yīng)端口的內(nèi)容。
通過讀或?qū)懺L問,該寄存器中為“0”的位使能相應(yīng)物理引腳的訪問。如果該寄存器中的位為“1”,則相應(yīng)位將不會通過寫訪問改變,并且讀操作時將不會在更新的 FIOxPIN 寄存器中反映出來。

高速GPIO端口引腳值寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0VAL

FP1VAL

FP2VAL

FP3VAL

FP4VAL

0

1

控制的引腳輸出設(shè)為低電平
控制的引腳輸出設(shè)為高電平

0


2.1GPIO端口方向寄存器FIOxDIR(FIO0DIR??FIO4DIR- 0x2009 C000??0x2009 C080)
當(dāng)引腳被配置為 GPIO功能時,該寄存器可用來控制引腳的方向。勿必根據(jù)引腳功能來設(shè)置每個引腳的方向。
注:GPIO引腳 P0.29和P0.30 與USB D+/-引腳共用,并且具有相同的方向。如果FP0DIR位29或位30在FIO0DIR寄存器中被配置為零,則P0.29 和P0.30都為輸入。如果FP0DIR位29和位30被配置為1,則P0.29和P0.30都為輸出。

高速GPIO端口方向寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0DIR

FP1DIR

FP2DIR

FP3DIR

FP4DIR

0

1

控制的引腳為輸入引腳
控制的引腳為輸出引腳

0


字和半字的操作基本類似,只是可以通過8位寄存器或者16位的寄存器分別控制方向而已,這里不再解釋,請參看《深入淺出Cortex-M3 LPC1700》.

2.2GPIO端口輸出設(shè)置寄存器FIOxSET(FIO0SET??FIO7SET - 0x2009 C018??0x2009 C098)
當(dāng)引腳在輸出模式中被配置為 GPIO 時,該寄存器在端口引腳產(chǎn)生高電平輸出。向該寄存器的某些位寫入“1”時,對應(yīng)的引腳產(chǎn)生高電平。寫入“0”無效。如果需要引腳輸出低電平或第二種功能,那么寫 1 到 FIOxSET 的相應(yīng)位無效。 讀FIOxSET 寄存器返回該寄存器的值,該值由前一次對 FIOxSET 和 FIOxCLR(或前面提到的 FIOxPIN)的寫操作確定,它不反映任何外部環(huán)境對 I/O引腳的影響。 通過 FIOxSET 寄存器訪問的端口引腳受到 FIOxMASK 寄存器相應(yīng)位的限制。

高速GPIO端口輸出設(shè)置寄存器位描述

符號

描述

復(fù)位值

31:0(字長數(shù)據(jù))

FP0SET

FP1SET

FP2SET

FP3SET

FP4SET

0

1

控制的引腳輸出不改變
控制的引腳輸出被設(shè)為高電平

0


2.3GPIO端口輸出清零寄存器FIOxCLR(FIO0CLR??FIO07CLR - 0x2009 C01C??0x2009 C09C)
當(dāng)引腳在輸出模式中被配置為 GPIO 時,該寄存器在端口引腳產(chǎn)生低電平輸出。向某些位寫入“1”會使相應(yīng)的引腳產(chǎn)生低電平,同時清零 FIOxSET 寄存器的相應(yīng)位。寫入“0”無效。如果引腳被配置為輸入或其它功能,那么寫 FIOxCLR 對引腳沒有影響。 通過FIOxCLR寄存器訪問的端口引腳受到FIOxMASK寄存器相應(yīng)位的限制.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉