STM32F4——GPIO基本應用及復用


IO基本應用

一、IO基本結構:

    針對STM32F4077IO。分別為GPIOA~GPIOG,每組IO16IO口,則有112IO口。

當中IO口的基本結構例如以下:

 

二、工作方式:

    STM32F4工作模式有8種,當中4中輸入模式。4種輸出模式,分別為:輸入浮空、輸入上拉、輸入下拉、模擬模式、開漏輸出、開漏復用輸出、推挽輸出、推挽復用輸出。


    1、輸入模式:

        在輸入浮空模式下。電路既不上拉也不下拉,通過施密特觸發器送到輸入數據寄存器在送入到CPU。輸入上拉和下拉模式各自是在電路中經過上拉和下拉后通過施密特觸發器送入的CPU,模擬模式下,施密特觸發器關閉后信號直接通過模擬通道至片上外設。

    2、輸出模式:

        開漏輸出模式下。CPU發送輸入直接或間接的控制輸出數據寄存器,通過輸出控制電路,當信號為1時,NMOS管是關閉的,所以IO電平就是受上下拉電路的控制。當信號為0時。NMOS管導通輸出就是下拉低電平;推挽輸出模式下。信號為1時,P-MOS管導通,N-MOS管截止,輸出就是上拉高電平,當信號為0時。P-MOS管截止,N-MOS管導通。輸出就是下拉低電平;對於開漏復用和推挽復用模式與開漏和推挽的不同之處就是在於信號的開源不同。開漏復用和推挽復用的信號來源是片上的外設模塊。


三、相關寄存器

    每個通用的IOport都包含432位的配置寄存器(GPIOx_MODERGPIOx_OTYPER、PIOx_OSPEEDR和GPIOx_PUPDR)。232位的數據寄存器(GPIOx_IDRGPIOx_ODR),132位置位/復位寄存器(GPIOx_BSRR),132位鎖定寄存器(GPIOx_LCKR)和232位復用功能選擇寄存器(GPIOx_AFRL)。

以下對其進行介紹。

    1、工作模式配置:1、port模式(GPIOx_MODER):用來配置port的模式為輸入、輸出、復用和模擬模式。

2、port類型(GPIOx_OTYPER):用來配置寄存器的模式為輸出推挽還是輸出開漏。3、port速度(PIOx_OSPEEDR):用來配置port的信息傳輸速率。4、port上下拉(GPIOx_PUPDR):用來配置port的無上下拉、上拉、下拉和保留模式。

    2、電平配置:1、輸入數據(GPIOx_IDR):用到其低16位。分別對應該組IO口的一個電平狀態。

2、輸出數據(GPIOx_ODR):與輸入數據寄存器相似的功能。3、置位和復位(GPIOx_BSRR):與前兩個不同的是置位和復位寄存器用到了32位。低16為設置為1時,用於置1對應位。高16位設置為1時,用於置0對應位。而低16位和高16位設置為0時不影響原值。

    3、復用功能配置:以下做對應說明。


IO復用

一、復用背景:

    因為考慮到IO口的有限,為了節省IO資源。同一時候為了更好的協調IO之間的工作。所以有必要在適當的時候給IO口賦予不同的功能。一個IO口在不同的時候能夠承擔不同的工作,這就是IO的復用功能。

二、復用原理:

    每個IO口都會接有一個選擇器,這個選擇器經過對應寄存器(GPIOx_AFRHGPIOx_AFRL)的配置之后就能夠做不同的功能的應用,這個寄存器就是GPIOx_AFRHGPIOx_AFRL

三、寄存器配置:

    每一組IO口都有一個AFRL和一個AFRH寄存器。他們都是32位的寄存器,當中每4位配置一個IO口的功能,則相應的GPIOx_AFRL就用來配置第0-7IO口,GPIOx_AFRH就用來配置第8-15IO口。

4位配置一個IO口,則4位數據的相關取值就會有相應的相應功能。如此一來就做好了相關配置。


綜述:

    這些相關的配置過程會用到對應的函數和對應變量,熟練使用相關的函數,同一時候對函數的功能了解后才會應用的更加得心應手。同一時候也能夠寫自己的一些相關函數來進行操作。當然也能夠直接操作相關的寄存器。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM