GPIO英文全稱General-PurposeInput/OutputPorts,中文意思是通用I/O端口。由于MCU的通信外設接口眾多,不可能每一外設固定一組GPIO,在MCU微控制器中,可通過軟件運行期間能夠動態配置和控制的引腳的狀態,所以每個GPIO口除了通用輸入輸出功能外,還可能有其它復用功能。 在靈動微MM32L0產品中,每個GPIO端口有兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個32位數據寄存器(GPIOx_IDR和GPIOx_ODR),一個32位置位/復位寄存器(GPIOx_BSRR),一個16位復位寄存器(GPIOx_BRR)、一個32位鎖定寄存器(GPIOx_LCKR)和兩個復用功能選擇寄存器(GPIOx_AFRH)和(GPIOx_AFRL)。 GPIO端口的每個位可以由軟件分別配置成多種模式。 -輸入浮空 -輸入上拉 -輸入下拉 -模擬輸入 -開漏輸出 -推挽式輸出 -推挽式復用功能 -開漏復用功能 每個I/O端口可以自由編程,然而必須按照32位字訪問I/O端口寄存器(不允許半字或字節訪問)。GPIOx_BSRR和GPIOx_BRR寄存器允許對任何GPIO寄存器進行讀/更改的獨立訪問;這樣在讀更改訪問之間產生IRQ不會發生危險。 圖1.I/O端口位的基本結構 1、輸入浮空詳解: 浮空(floating)就是邏輯器件的輸入引腳既不接高電平,也不接低電平。一般實際運用時,引腳不建議懸空,易受干擾。 2、輸入上拉\下拉詳解: 上拉就是把電位拉高,比如拉到Vcc。上拉就是將不確定的信號通過一個電阻拉在高電平!弱強只是上拉電阻的阻值不同,沒有什么嚴格區分。在MM32L0xxx中該上拉電阻位40k歐姆。 3、模擬輸入詳解: 模擬輸入是指模擬信號的輸入。配置模擬輸入時,所有的上拉、下拉電阻和施密特觸發器,均處于禁止狀態,因此“輸入數據寄存器”將不能反映端口上的電平狀態,也就是說模擬輸入配置下,CPU不能在“輸入數據寄存器”上讀到有效的數據。 4、開漏輸出詳解: 輸出端相當于三極管的集電極,對輸入數據寄存器的訪問可得到I/O狀態?梢宰霾煌電壓信號轉換;多個同時級聯還可以實現線與邏輯)。 5、推挽式輸出詳解: 可以輸出高,低電平,連接數字器件;推挽結構一般是指兩個三極管分別受兩互補信號的控制,總是在一個三極管導通的時候另一個截止。高低電平由IC的電源決定。 6、復用功能詳解: 可以理解為GPIO口被用作第二功能時的配置情況(即并非作為通用IO口使用)。端口必須配置成復用功能輸出模式(推挽或開漏)。 關于靈動 靈動微電子是國內專注于MCU產品與應用方案的領先供應商,是中國工業及信息化部和上海市信息化辦公室認定的集成電路設計企業,同時也是上海市認定的高新技術企業。自2011年3月成立至今,靈動微電子已經成功完成數百余國產32位MCU產品的設計及推廣,靈動微電子目前已批量供貨的基于ARM Cortex-M0及Cortex-M3 內核的MCU產品包括:針對通用高性能市場的MM32F系列,針對超低功耗及安全應用的MM32L系列,具有多種無線連接功能的MM32W系列,電機及電源專用的MM32SPIN系列,以及OTP型的MM32P系列等,以滿足客戶及市場多領域、多層次的豐富應用場景需求。總代理英尚微電子支持提供免費開發板測試以及例程等技術支持 |