STM32F103之GPIO學習記錄


9 GPIO:通用I/O口 AFIO:可供選擇的I/O口

 

9.1 GPIO功能描述

每一個通用的I/O口都有:

兩個32位的配置寄存器(配置寄存器低和配置寄存器高);

兩個32位的數據寄存器(輸入數據寄存器,輸出數據寄存器);

一個32位的位設置/復位寄存器;

一個16位的復位寄存器和1個32位鎖定寄存器。

每個I/O口可以被軟件配置為一下幾種模式:

  • 浮點輸入
  • 上拉輸入
  • 下拉輸入
  • 模擬
  • 開漏輸出
  • 推挽輸出
  • 推挽復用
  • 開漏復用

每個端口位可自由編程,但是端口寄存器必須以32位進行訪問(不允許使用32位或8位進行訪問)。

位設置復位寄存器和位復位寄存器的作用是允許對任何的GPIO寄存器進行原子讀或修改。

這樣的話,在讀取和修改進入之間就不會有IRQ的風險。

 

 

 上圖是標准的I/O口的基本結構

該圖中有三個基本的模塊:輸入驅動;輸出驅動;寄存器。

在輸入中改變兩個開關決定是上拉還是下拉,不經過TTL施密特觸發器就是模擬輸入信號,

經過TTL施密特觸發器就是復用功能輸入,這些輸入量可以流進片內外設。

通過輸入數據寄存器可以讀取輸入的數據。

在輸出驅動中,改變P-MOS和N-MOS決定是開漏還是推挽,輸入信號的源頭也是來自於片內外設。

通過位設置/復位寄存器和數據輸出寄存器可以控制輸出數據。

9.1.1 通用的I/O口

9.1.2 原子位置位或復位

9.1.3 外部中斷喚醒

9.1.4 可以復用的功能

9.1.5 I/O復用功能的軟件重新映射

9.1.6 GPIO鎖定機制

9.1.7 輸入配置

9.1.8 輸出配置

9.1.9 復用功能配置

9.1.10 模擬配置

9.1.11 設備外設的GPIO配置

 

 

9.2 GPIO寄存器

9.2.1 端口配置寄存器低(GPIOx_CRL)(x=A..G)

9.2.2 端口配置寄存器高(GPIOx_CRH)(x=A..G)

9.2.3 端口輸入數據寄存器(GPIOx_IDR)(x=A..G)

9.2.4 端口輸出數據寄存器(GPIOx_ODR)(x=A..G)

9.2.5 端口位設置/復位寄存器(GPIOx_BSRR)(x = A..G)

9.2.6 端口位復位寄存器 (GPIOx_BRR)(x=A..G)

9.2.7 端口配置鎖定寄存器(GPIOx_LCKP)(x=A..G)

 

9.3 可選功能I/O口以及調試配置

9.3.1 外部低速引腳

9.3.2 外部高速引腳

9.3.3 CAN1復用功能映射

9.3.4 CAN2復用功能映射

9.3.5 JTAG/SWD復用功能映射

9.3.6 ADC復用功能映射 

9.3.7 Timer復用功能映射

9.3.8 USART復用功能映射

9.3.9 I2C1復用功能映射

9.3.10 SPI1復用功能映射

9.3.11 SPI3/I2S3復用功能映射

9.3.12 以太網復用功能映射

 

9.4 AFIO寄存器

9.4.1 事件控制寄存器(AFIO_EVCR)

9.4.2 AF重新映射和調試I/O配置寄存器(AFIO_MAPR)

9.4.3 外圍中斷配置寄存器1(AFIO_EXTICR1)

9.4.4 外圍中斷配置寄存器2(AFIO_EXTICR2)

9.4.5 外圍中斷配置寄存器3(AFIO_EXTICR3)

9.4.6 外圍中斷配置寄存器4(AFIO_EXTICR4)

9.4.7 AF重新映射和調試I/O配置寄存器2(AFIO_MAPR2)

 

9.5 GPIO和AFIO的寄存器圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM