STM32中的GPIO筆記

2022-03-08 18:38:19 字數 1518 閱讀 4442

1.gpio是stm32可控制的引腳,stm32的gpio被分成很多組,每組有16個引腳。每個gpio埠包含:2個32位配置暫存器(crl、crh),2個32位資料暫存器(idr、odr),1個32位復位暫存器(bsrr),1個16位復位暫存器(brr)和1個32位鎖定暫存器。

2.gpio埠的每個位可以配置成:模擬輸入、浮空輸入、上拉輸入、下拉輸入、開漏輸出、推挽輸出、復用開漏輸出、復用推挽輸出。

3.復位暫存器(bsrr、brr)可以對任何gpio暫存器的獨立訪問。配置暫存器(crl和crh)可以配置gpio的工作模式和工作速度,每4位控制乙個io,crl控制低8位,crh控制高8位。其中mode位配置速度,cnf位配置輸入輸出模式。

4.gpio屬於高速的外設,掛載到apb2匯流排上,基本功能是控制引腳輸出高電平或低電平。gpio有很多暫存器,每乙個都有特定的功能。每個暫存器32位,佔4個位元組。

5.gpio:乙個gpio埠至少需要兩個暫存器,乙個做控制用的「通用io埠控制暫存器」,還有乙個是存放資料的「通用i/o埠資料暫存器」。資料暫存器的每一位是和gpio的硬體引腳對應的,而資料的傳遞方向是通過控制暫存器設定的,通過控制暫存器可以設定每一位引腳的資料流向。最基本的輸出功能是由stm32控制引腳輸出高、低電平,實現開關控制,如把gpio引腳接入到led燈,那就可以控制led燈的亮滅,引腳接入到繼電器或三極體,那就可以通過繼電器或三極體控制外部大功率電路的通斷。最基本的輸入功能是檢測外部輸入電平,如把gpio引腳連線到按鍵,通過電平高低區分按鍵是否被按下。

6.stm32 gpio 配置之odr, bsrr, brr:odr暫存器可讀可寫,既能控制管腳為高電平,也能控制管腳為低電平。管腳對於位寫1 gpio 管腳為高電平,寫 0 為低電平。bsrr 只寫暫存器:既能控制管腳為高電平,也能控制管腳為低電平。對暫存器高 16bit 寫1 對應管腳為低電平,對暫存器低16bit寫1對應管腳為高電平。寫 0 ,無動作。brr 只寫暫存器:只能改變管腳狀態為低電平,對暫存器 管腳對於位寫 1 相應管腳會為低電平。寫 0 無動作。

7.位帶操作:可以實現對某一gpio口暫存器(或sram記憶體中)的某一bit位直接寫0或1,達到控制gpio口輸出(或改變sram中這一bit位的值)。

8.gpio工作模式

模擬輸入:ad採集、低功耗下省電

浮空輸入:外部按鍵輸入

下拉輸入:io內部下拉電阻輸入

上拉輸入:io內部上拉電阻輸入

開漏輸出:連線不同電平、匯流排電路

推挽輸出:常用

復用開漏輸出:片內外設功能:tx1、mosi、miso、sck、ss

復用推挽輸出:片內外設功能:i2c的scl、sda

9.乙個位元組是8位,彙編中,為了表示乙個整數型別,占用兩個位元組,用二進位制來表示,即總共16位。例如:3的二進位制是11,用兩個位元組表示為0000 0000 0000 0011,前面的8位稱為高8位,後邊的8位稱為低8位。

10.gpio上拉和下拉:上拉就是將不確定的訊號通過乙個電阻鉗位在高電平,電阻同時起限流作用。下拉同理。也是將不確定的訊號通過乙個電阻鉗位在低電平。不過從程式設計的角度講,上拉就是如果沒有輸入訊號則此時i/o狀態為1,下拉相反。

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...