GPIO工作模式 由于GPIO內部的結構關系,決定了GPIO可配置成以下幾種模式。 · 輸入模式 · 在輸入模式時,施密特觸發器打開,輸出被禁止。可通過輸入數據寄存器GPIOx_IDR讀取I/O狀態。輸入模式可以配置為模擬、上拉、下拉以及浮空模式。上拉和下拉輸入很好理解,默認的電平由上拉或者下拉決定。浮空輸入的電平是不確定的,完全由外部的輸入決定,一般接按鍵的時候可以使用這個模式。模擬輸入則用于 ADC 采集。 · 輸出模式(推挽/開漏) · 在輸出模式中,推挽模式時雙MOS管以推挽方式工作,輸出數據寄存器GPIOx_ODR可控制I/O輸出高低電平。開漏模式時,只有N-MOS管工作,輸出數據寄存器可控制I/O輸出高阻態或低電平。輸出速度可配置,有2、25、50MHz的選項。嵌入式物聯網智能硬件等更多內容請加企鵝意義氣嗚嗚吧久零就易,此處的輸出速度即I/O支持的高低電平狀態最高切換頻率,支持的頻率越高,功耗越大,如果功耗要求不嚴格,把速度設置成最大即可。在輸出模式時,施密特觸發器是打開的,即輸入可用,通過輸入數據寄存器GPIOx_IDR可讀取I/O的實際狀態。 · 復用功能(推挽/開漏) · 復用功能模式中,輸出使能,輸出速度可配置,可工作在開漏及推挽模式,但是輸出信號源于其它外設,輸出數據寄存器 GPIOx_ODR 無效;輸入可用,通過輸入數據寄存器可獲取 I/O 實際狀態,但一般直接用外設的寄存器來獲取該數據信號。 · 模擬輸入輸出(上下拉無影響) · 模擬輸入輸出模式中,雙MOS管結構被關閉,施密特觸發器停用,上/下拉也被禁止。其它外設通過模擬通道進行輸入輸出。通過對GPIO寄存器寫入不同的參數,就可以改變GPIO的應用模式,再強調一下,要了解具體寄存器時一定要查閱《STM32F1xx 參考手冊》中對應外設的寄存器說明。在GPIO外設中,通過設置“端口配置寄存器GPIOx_CRL和GPIOx_CRH”可配置GPIO的工作模式和輸出速度。CRH控制端口的高八位,CRL控制端口的低八位。 開發板上LED電路圖如下圖所示。 file:///C:\Users\郭曉娟\AppData\Local\Temp\ksohtml\wps8DCC.tmp.png 相同網絡標號表示它們是連接在一起的, 因此D1-D8發光二極管陰極是連接在STM32的PC0-PC7管腳上。如果要使D1指示燈亮,只需要控制PC0管腳輸出低電平,如果要使D1指示燈滅,只需控制PC0輸出高電平。對于其他的LED控制方法一樣。如果使用的是其他板子,連接LED的管腳和極性不一樣,那么只需要在程序中修改對應的GPIO管腳和輸出電平狀態就可以,原理是一樣的。要點亮D1發光二極管,讓STM32的PC0管腳輸出一個低電平即可。 |