No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)
GPIO 簡介
GPIO=General Purpose Input Output,通用輸入輸出。簡稱為“IO口”。
GPIO 是通用輸入輸出端口的簡稱,STM32 可控制的引腳,STM32 芯片的 GPIO 引腳與外部設備連接起來,從而實現與外部通訊、控制以及數據采集的功能。STM32 芯片的 GPIO被分成很多組,每組有 16 個引腳,如型號為 STM32F4IGT6 型號的芯片有 GPIOA、GPIOB、GPIOC至 GPIOI 共 9 組 GPIO,芯片一共 176 個引腳,其中 GPIO 就占了一大部分,所有的 GPIO 引腳都有基本的輸入輸出功能。
最基本的輸出功能是由 STM32 控制引腳輸出高、低電平,實現開關控制,GPIO口是怎么被控制的呢?通過軟件代碼。需要亮燈的時候調用GPIO口拉高的函數,需要熄燈的時候調用GPIO拉低的函數,即可實現控制。如把 GPIO 引腳接入到 LED 燈,那就可以控制 LED 燈的亮滅。最基本的輸入功能是檢測外部輸入電平,如把 GPIO 引腳連接到按鍵,通過電平高低區分按鍵是否被按下。
GPIO除了簡單的輸入輸出之外,還可以做一些相對復雜的操作,例如模擬I2C或SPI數據線、ADC電壓檢測、輸出PWM波形等。
GPIO框圖
保護二極管及上、下拉電阻
通過上、下拉對應的開關配置,我們可以控制引腳默認狀態的電壓,開啟上拉的時候引腳電壓為高電平,開啟下拉的時候引腳電壓為低電平,這樣可以消除引腳不定狀態的影響。如引腳外部沒有外接器件,或者外部的器件不干擾該引腳電壓時,STM32 的引腳都會有這個默認狀態。也可以設置“既不上拉也不下拉模式”,我們也把這種狀態稱為浮空模式,配置成這個模式時,直接用電壓表測量其引腳電壓為 1 點幾伏,這是個不確定值。所以一般來說我們都會選擇給引腳設置“上拉模式”或“下拉模式”使它有默認狀態。
STM32 的內部上拉是“弱上拉”,即通過此上拉輸出的電流是很弱的,如要求大電流還是需要外
部上拉。通過“上拉/下拉寄存器 GPIOx_PUPDR”控制引腳的上、下拉以及浮空模式。
用于輸入模式時,可設置為上拉、下拉或浮空模式
P-MOS 管和 N-MOS 管
輸出模式部分,線路經過一個由 P-MOS 和 N-MOS 管組成的單元電路。這個結構使 GPIO 具有了“推挽輸出”和“開漏輸出”兩種模式。
推挽輸出模式,是根據這兩個 MOS 管的工作方式來命名的。輸入高電平時,上方的 P-MOS 導通,下方的 N-MOS 關閉,對外輸出高電平,輸入低電平時反之。
推挽輸出的低電平為0 伏,高電平為3.3 伏,它是推挽輸出模式時的等效電路。
通過“輸出類型寄存器 GPIOx_OTYPER 可以控制 GPIO 端口是推挽模式還是開漏模式。
輸出數據寄存器
置位/復位寄存器GPIOx_BSRR可以通過修改輸出數據寄存器的值從而影響電路的輸出。
復用功能輸出
使用 USART 串口通訊時,需要用到某個 GPIO 引腳作為通訊發送引腳,這個時候就可以把該 GPIO 引腳配置成 USART 串口復用功能,由串口外設控制該引腳,發送數據。
輸入數據寄存器
連接到施密特觸發器,信號經過觸發器后,模擬信號轉化為 0、1 的數字信號,然后存儲在“輸入數據寄存器GPIOx_IDR”中,通過讀取該寄存器就可以了解 GPIO 引腳的電平狀態。
復用功能輸入
和復用功能輸出一致,發送變接收。
模擬輸入輸出
當 GPIO 引腳用于 ADC 采集電壓的輸入通道時,用作“模擬輸入”功能,此時信號是不經過施密特觸發器的,因為經過施密特觸發器后信號只有 0、1 兩種狀態,所以 ADC 外設要采集到原始的模擬信號,信號源輸入必須在施密特觸發器之前。反之作為模擬輸出,當 GPIO 用于模擬功能時 (包括輸入輸出),引腳的上、下拉電阻是不起作用的,即使在寄存器配置了上拉或下拉模式,也不會影響到模擬信號的輸入輸出。
正點原子F429原理圖
圖中PB0和PB1就是控制正點原子板子上兩個LED燈的IO口。
總結
以上是生活随笔為你收集整理的No.4 STM32F429IGT6 GPIO相关学习总结(STM32F429/F767/H743)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “教务管理系统”ER模型
- 下一篇: html产品720度旋转,720度全视角