1. 程式人生 > >STM32第二章I/O埠應用

STM32第二章I/O埠應用

STM32F10xxx系列中,有7個I/O埠,每個埠有兩個32位配置暫存器(GPIOx_CRL,GPIOx_CRH),兩個32位資料暫存器(GPIOx_IDR和GPIOx_ODR),一個32位置位/復位暫存器(GPIOxBSRR),一個16位復位暫存器(GPIOx_BRR)和一個32位鎖存器(GPIOx_LCKP)。通過軟體配置成輸入浮空,上拉,下拉,模擬輸入,開漏輸入,推輓式輸出,推輓式複用功能,開漏複用功能。

  • I/O埠必須32位字被訪問(不允許半字或位元組訪問)
  • 所有引腳有弱上拉和弱下拉,配置輸入時,可以被啟用也可以斷開

單獨的位設定或清除

  • 對GPIOx_ODR的個別位程式設計,軟體不需要禁止中斷,在單次APB2寫操作中,可以只改一位或多位。通過“置位/復位暫存器”(GPIOx_BSRR,復位是GPIOx_BRR)中想要更改的位寫1來實現的。

外部中斷/喚醒線

  • 所有埠都有外部中斷能力。為了使用外部中斷線,埠必須配置成輸入模式。

複用功能AF

  • 對於複用的輸入功能,埠必須配置成輸入模式(浮空、上拉或下拉)且輸入引腳由外部驅動
  • 複用輸出功能,埠配置成複用功能輸出模式(推輓或開漏)--引腳和輸出暫存器斷開,並和外設連結,外設沒有啟用,輸出狀態不穩定
  • 雙向複用功能,埠配置成複用功能輸出模式(推輓或開漏)。這時,輸入驅動被配置成浮空輸入模式

軟體重對映I/O埠複用功能

  • 將一些複用功能重新對映到其他引腳上,可通過軟體配置相應的暫存器

GPIO鎖定機制

  • 凍結I/O配置,在下一次復位之前不能改變埠的配置

I/O位輸入時,輸出驅動器禁止。根據輸入配置,弱上拉和下拉選擇性連線。

輸出配置,輸出驅動啟用,

  • 開漏模式
  • 推輓模式
  • 施密特觸發被啟用
  • 弱上拉下拉禁止

複用功能配置

  • 當配置成複用功能時,在開漏或推輓配置中,輸出驅動被開啟,內建外設驅動輸出驅動器(複用功能輸出),施密特觸發輸入被啟用,若上拉下拉禁用

模擬輸入配置