STM32學習筆記之GPIO輸入與輸出

2021-08-17 21:18:00 字數 2319 閱讀 5861

1、核心點:對於任意mcu中的外設(模組)操作方法:都是找該模組的工作框圖,根據框圖來寫程式

對於st中的任何乙個外設,都是掛載在不同的時鐘線下的,所有的時鐘線預設都是關閉的;在使用該外設之前,要開啟該外設的時鐘

步驟1 :

開啟晶元手冊(mcu的英文晶元手冊)2.2章節,找外設在哪一條時鐘線下

步驟2 :

開啟資料手冊,第6.3章節(時鐘章節)找到對應外設時鐘線的使能暫存器

步驟3:

在該暫存器中找到你的外設,看寫入什麼值

2、gpio口功能:

作為普通的輸入、輸出功能

---輸入/輸出普通的高、低電平

作為復用的輸入、輸出功能

---作為其他外設傳輸時的功能

st中的io 可以作為輸入,也可以作為輸出,但是要使用者自己配置

3、輸出模式:

推挽輸出:

---可以輸出 高電平  ,也可以輸出 低電平

開漏輸出:

---只能輸出低電平,如果想在開漏模式下輸出高電平,必須在io口外部外接乙個上拉電阻

4、上拉下拉

在輸出配置時,選擇上拉/下拉對io口電平、功能無明顯影響

在輸入配置時,上拉: 增強訊號的驅動能力;下拉: 訊號更穩定

我一直都不明白上拉/下拉到底有什麼用,有什麼影響,找了很多資料也沒有懂。這一部分都是硬體的知識,實在是搞不明白了。後來去問大佬這個到底該怎麼做,大佬說輸出時直接配置浮空就行,不用上下拉,輸入的話會有影響,不過一般影響不大,初學的話就都配置浮空。看來只能以後學的多了再回來看吧。

5、輸出模式:

推挽輸出:

---可以輸出高電平,也可以輸出低電平

開漏輸出:

---只能輸出低電平,如果想在開漏模式下輸出高電平,必須在io口外部外接乙個上拉電阻

6、輸出速率

gpio輸出速度: 2mhz  25mhz  50mhz; 

又稱輸出驅動電路的響應速度:(晶元內部在i/o口的輸出部分安排了多個響應速度不同的輸出驅動電路,使用者可以根據自己的需要選擇合適的驅動電路,通過選擇速度來選擇不同的輸出驅動模組,達到最佳的雜訊控制和降低功耗的目的。)

---可理解為:輸出驅動電路的頻寬:即乙個驅動電路可以不失真地通過訊號的最大頻率。

如果乙個訊號的頻率超過了驅動電路的響應速度,就有可能訊號失真。(訊號頻率為10mhz,而你配置了2mhz的頻寬,則10mhz的方波很可能就變成了正弦波。就好比是公路的設計時速,汽車速度低於設計時速時,可以平穩地執行,如果超過設計時速就會顛簸,甚至翻車。)如果gpio驅動電路的響應速度相對於訊號頻率太快,會導致功耗加大、雜訊加大,會影響正常訊號的傳輸和識別。

---理解:cpu主頻為168m,這個速度就是類似的概念,驅動的頻率

gpio的翻轉速度指:

輸入/輸出暫存器的0 ,1 值反映到外部引腳(apb2上)高低電平的速度.手冊上指出gpio最大翻轉速度可達18mhz。

也就是說輸出速度不是指的每秒輸出多快/輸出多少次電平;只是選擇不同的速率,在io口內部鏈結不同的功耗電路(對外部現象無影響)

7、輸出流程 :

①、把要輸出的電平寫到輸出資料暫存器

②、經過乙個輸出驅動器控制(推挽/開漏)

③、經過乙個上拉/下拉的開關

④、輸出的電平傳輸到io口

④、上拉/下拉暫存器(對輸出來說,影響不大)

8、輸入流程:

①、外界過來的電平進入io口

②、經過上拉/下拉的選擇

③、經過輸入模式配置

④、電平儲存在輸入資料暫存器中

⑤、通過讀輸入資料暫存器得到電平的狀態

9、輸入模式

①、模擬輸入:

adc dac 轉換 

②、上拉輸入:

當硬體上io口無外接上拉電阻,軟體上配置為該模式,虛擬乙個外接電阻

③、下拉輸入: 使用較少

當硬體上io無外接下拉電阻,軟體上配置成該模式,虛擬乙個外接電阻

④、浮空輸入:

當硬體上io口有外接電阻,軟體上配置該模式

10、為什麼輸入無速率?

輸入資料暫存器每隔1個ahb1時鐘週期對 i/o 引腳上的資料進行一次取樣

/*****************************

函式名      :led_init

函式引數    :無

函式返回值  :無

函式功能    :實現開發板對應led燈的輸出功能配置

函式描述    :pf6     led1

pf9     led2

pf10    led3

pc0     led4

*****************************/

void led_init(void)

stm32學習筆記 GPIO

2011 03 06 15 10 stm32基本上每個引腳都有8種配置模式 浮空輸入 帶弱上拉輸入 帶弱下拉輸入 模擬輸入 推挽輸出 開漏輸出 復用推挽輸出 復用開漏輸出 通常有5種方式使用某個引腳功能,它們的配置方式如下 1 作為普通gpio輸入 根據需要配置該引腳為浮空輸入 帶弱上拉輸入或帶弱下...

STM32學習筆記 GPIO

該微控制器在gpio功能方面有以下特點 1 4種輸入模式 gpio mode ain 模擬輸入 gpio mode in floating 浮空輸入 gpio mode ipd 下拉輸入 gpio mode ipu 上拉輸入 2 4種輸出模式 gpio mode out od 開漏輸出 gpio m...

stm32學習筆記之GPIO配置

1 gpio mode ain 模擬輸入 2 gpio mode in floating 浮空輸入 3 gpio mode ipd 下拉輸入 4 gpio mode ipu 上拉輸入 5 gpio mode out od 開漏輸出 6 gpio mode out pp 推挽輸出 7 gpio mod...