STM32 GPIO基本結構

四葉草聽雪發表於2020-10-11

一,STM32的IO口,絕大部分都是相容5V的,至於到底哪些相容,大家可以去看STM32晶片的資料手冊(注意是資料手冊,不是參考手冊),裡面的引腳描述表(pin definitions)有詳細的標註,凡是帶FT標誌的IO口,都是相容5V。

二,舉例

1,STM32F103ZET6:一共有7組IO口, 每組IO口有16個IO,一共16X7=112個IO
    
GPIOA,GPIOB,GPIOC,GPIOD,GPIOE,GPIOF,GPIOG

2,STM32F103RCT6:一共有4組IO口, 一共16X3+3=51個IO
  GPIOA0~A15,GPIOB0~B15,GPIOC0~C15,GPIOD0~D2

三,STM32的大部分引腳除了當GPIO使用外,還可以複用為外設功能引腳(比如串列埠):

IO埠位的基本結構:

四,GPIO的八種工作方式:

四種輸入模式:輸入浮空,輸入上拉,輸入下拉,模擬輸入

四種輸出模式:開漏輸出,開漏複用功能,推輓式輸出,推輓式複用功能

三種最大翻轉速度:2MHZ,10MHz,50MHz

1,輸入浮空模式

2,輸入上拉模式

3,輸入下拉模式

4,模擬模式

5,開漏輸出模式

6,開漏複用輸出模式

7,推輓輸出模式

8,推輓複用輸出模式

上電覆位後,GPIO預設為浮空狀態,部分特殊功能引腳為特定狀態。

推輓輸出:
可以輸出強高低電平,連線數字器件
開漏輸出:
只可以輸出強低電平,高電平得靠外部電阻拉高。輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)


五,每組GPIO埠的暫存器包括:

兩個32位配置暫存器(GPIOx_CRL ,GPIOx_CRH) ,
兩個32位資料暫存器 (GPIOx_IDR和GPIOx_ODR),
一個32位置位/ 復位暫存器(GPIOx_BSRR),
一個16位復位暫存器(GPIOx_BRR),
一個32位鎖定暫存器(GPIOx_LCKR)。

每個I/O埠位可以自由程式設計,然而I/O埠暫存器必須按32位字被訪問(不允許半字或位元組訪問) 。

每組IO口含下面7個暫存器。也就是7個暫存器,一共可以控制一組GPIO的16個IO口。

1,埠配置低暫存器(GPIOx_CRL)

2,埠配置低暫存器(GPIOx_CRL)

3,埠配置高暫存器(GPIOx_CRH)

4,埠輸入資料暫存器(GPIOx_IDR)

5,埠輸出資料暫存器(GPIOx_ODR)

6,埠輸出資料暫存器(GPIOx_ODR)

7,埠位設定/清除暫存器(GPIOx_BSRR)

8,埠位清除暫存器(GPIOx_BRR)

六,埠多用

1,埠複用功能
   STM32的大部分埠都具有複用功能。所謂複用,就是一些埠不僅僅可以做為通用IO口,還可以複用為一些外設引腳,比如PA9,PA10可以複用為STM32的串列埠1引腳。

  作用:最大限度的利用埠資源


  作用:最大限度的利用埠資源

 2,埠重對映功能
   就是可以把某些功能引腳對映到其他引腳。比如串列埠1預設引腳是PA9,PA10可以通過配置重對映對映到PB6,PB7
   作用:方便佈線

3,所有IO口都可以作為中斷輸入

 

 

相關文章