在Smart Micro 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)。
每個I / O端口都可以自由編程,但是必須以32位字訪問I / O端口寄存器(不允許半字或字節訪問)。
GPIOx_BSRR和GPIOx_BRR寄存器允許獨立訪問以讀取/更改任何GPIO寄存器。
這樣,在讀取和更改訪問之間生成的IRQ不會很危險。
圖1. I / O端口位的基本結構1.輸入浮動的詳細說明:浮動意味著邏輯設備的輸入引腳既不連接到高電平,也不連接到低電平。
在一般實際使用中,不建議將引腳懸空,因為它們容易受到干擾。
2.輸入上拉和下拉詳細說明:上拉是將電位拉高,例如,拉至Vcc。
上拉是通過電阻將不確定信號拉至高電平!弱和強只是上拉電阻的電阻不同,沒有嚴格的區別。
在MM32L0xxx中,上拉電阻為40k歐姆。
3.詳細的模擬輸入:模擬輸入是指模擬信號的輸入。
當配置模擬輸入時,所有的上拉,下拉電阻和施密特觸發器都處于禁用狀態,因此,“輸入數據寄存器”被設置為“禁用”。
它將不會反映端口上的電平狀態,也就是說,CPU無法在“輸入數據寄存器”中讀取有效數據。
4.開漏輸出的詳細說明:輸出端子等效于晶體管的集電極,可以通過訪問輸入數據寄存器來獲得I / O狀態。
可以做不同的電壓信號轉換;多個同時級聯也可以實現線路和邏輯)。
5.推挽輸出的詳細說明:它可以輸出高電平和低電平,并連接到數字設備;推挽結構通常意味著兩個晶體管由兩個互補信號控制,而一個晶體管導通時另一個晶體管總是被截止。
高電平和低電平由IC的電源決定。
6.多路復用功能的詳細說明:可以將GPIO端口用作第二功能(即,不用作通用IO端口)時的配置。
該端口必須配置為多路復用功能輸出模式(推挽或漏極開路)。
q