STM32GPIO部分介紹

2021-07-31 03:17:02 字數 1954 閱讀 3592

最近在老師交給了乙個專案,需要用到stm32微控制器,這裡就在學習的過程中所注意到的一些地方或細節部分記錄了下來,筆者所使用的是stm32f407zgt6晶元(探索者)。

檢視晶元的資料手冊

這個**對每個i/o口的功能進行了很詳細的介紹。每個i/o除了作為i/o使用外,還可以作為其他的復用。已以pe2口為例,「alternate functions」所展示就是其可以復用的功能。

晶元結構

f3系列和f4系列晶元的晶元結構大體相似,區別在於f4將f3晶元的上下拉結構配置由內部轉到了外部。如下圖所示。

同時大家注意到在第二張圖的右邊有乙個「tf:5v容忍」,f4晶元i/o口大部分也支援5v容忍,5v容忍就是說stm32的輸出電壓是3.3v,但是也容忍輸出5v。

那麼哪些i/o口支援5v容忍了,這個得看最上面的晶元手冊,如果晶元後面有一欄寫有「tf」標示,即說明支援5v容忍。

gpio相關配置暫存器

每組gpio口包含10組暫存器。

乙個埠模式暫存器(gpiox_moder)

乙個埠輸出型別暫存器(gpiox_otyper)

乙個埠輸出速度暫存器(gpiox_ospeedr)

乙個埠上拉下拉暫存器(gpiox_pupdr)  前4個為32位配置暫存器

乙個埠輸入資料暫存器(gpiox_idr)

乙個埠輸出資料暫存器(gpiox_odr)  中間2個為32位資料暫存器

乙個埠置位/復位暫存器(gpiox_bsrr)

乙個埠配置鎖存暫存器(gpiox_lckr)

兩個復位功能暫存器(低位gpiox_afrl & gpiox_afrh)

如果配置乙個io口需要2個位,那麼剛好32位暫存器配置一組io口16個io口

如果配置乙個io口只需要1個位,一般高16位保留

bsrr暫存器32位分為低16位bsrrl和高16位bsrrh,bsrrl配置一組io口的16個io口的置位狀態(1),bsrrh配置復位狀態(0)。

埠模式暫存器(gpiox_moder)

moder暫存器沒2位控制乙個io,32位就控制16個io。以gpioa為例,它就有gpioa0~15,如果配置為』00』,則為「輸入(復位狀態)」模式。那麼32位剛好可以配置一組io的16個io。

埠輸出型別暫存器(gpiox_otyper)

但是只有輸出模式是不夠的,還需要輸出型別。

otyper暫存器每位控制乙個io,低16位控制一組io的16個io,高16位保留沒有用。

每個io只用到一位,可以設定位0或者1。如果設定為0則為「輸出推挽」,若要設定為「復用輸出推挽」,則將埠模式暫存器設定為「復用功能模式」,再將這裡設定為「輸出推挽」模式即可。

提示任何方式操作io口,都必須先使能相應io口始終。

『rcc_ahb1periphcolckcmd();』

其它的暫存器設定方法與這兩個類似,這裡不過多介紹。

STM32 GPIO簡單介紹

2018 3 28 stm32 1.簡單配置暫存器環境 2.ministm32f103rc 51個io口 1.擁有著4組io口 gpioa0 a15 gpiob0 b15 gpioc0 c15 gpiod0 d2 2.gpio的工作方式 四種輸入模式,四種輸出模式 輸入方式 1.輸入浮空模式 由引腳...

STM32 GPIO模式總結

4種輸入模式 浮空輸入 上拉輸入 下拉輸入 模擬輸入 4種輸出模式 開漏輸出 復用開漏輸出 推挽輸出 復用推挽輸出 3種最大輸出速度 2mhz 10mhz 50mhz 浮空輸入模式 1 外部通過io口輸入電平,外部電平通過上下拉部分 浮空模式下都關閉,既無 上拉也無下拉電阻 2 傳輸到施密特觸發器 ...

STM32 GPIO管腳特性

剛剛接觸stm32,一點小意外,記錄一下問題該點 gpio port input data register gpiox idr gpio資料接收暫存器 檢測管腳輸入高低電平,僅在管腳為輸入模式下有效 該暫存器高16位保留,低16位讀取pin腳輸入資料。gpio port output data r...