日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【STM32】GPIO概述

發布時間:2024/4/24 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【STM32】GPIO概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. GPIO簡介
    • 02. GPIO主要特性
    • 03. GPIO功能描述
    • 04. I/O引腳復用器和映射
    • 05. I/O端口控制寄存器
    • 06. I/O端口數據寄存器
    • 07. I/O數據位操作
    • 08. GPIO鎖定機制
    • 09. GPIO寄存器描述
      • 9.1 GPIO端口模式寄存器 (GPIOx_MODER) (x = A..I)
      • 9.2 GPIO端口輸出類型寄存器 (GPIOx_OTYPER) (x = A..I)
      • 9.3 GPIO端口輸出速度寄存器 (GPIOx_OSPEEDR) (x = A..I/)
      • 9.4 GPIO端口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A..I/)
      • 9.5 GPIO端口輸入數據寄存器 (GPIOx_IDR) (x = A..I)
      • 9.6 GPIO端口輸出數據寄存器 (GPIOx_ODR) (x = A..I)
      • 9.7 GPIO端口置位/復位寄存器 (GPIOx_BSRR) (x = A..I)
      • 9.8 GPIO復用功能低位寄存器 (GPIOx_AFRL) (x = A..I)
      • 9.9 GPIO復用功能高位寄存器 (GPIOx_AFRH) (x = A..I)
    • 10. 附錄

01. GPIO簡介

每個通用 I/O 端口包括 4 個 32 位配置寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)、2 個 32 位數據寄存器(GPIOx_IDR 和GPIOx_ODR)、1 個 32 位置位/復位寄存器 (GPIOx_BSRR)、1 個 32 位鎖定寄存器(GPIOx_LCKR) 和 2 個 32 位復用功能選擇寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。

02. GPIO主要特性

● 受控 I/O 多達 16 個
● 輸出狀態:推挽或開漏 + 上拉/下拉
● 從輸出數據寄存器 (GPIOx_ODR) 或外設(復用功能輸出)輸出數據
● 可為每個 I/O 選擇不同的速度
● 輸入狀態:浮空、上拉/下拉、模擬
● 將數據輸入到輸入數據寄存器 (GPIOx_IDR) 或外設(復用功能輸入)
● 置位和復位寄存器 (GPIOx_BSRR),對 GPIOx_ODR 具有按位寫權限
● 鎖定機制 (GPIOx_LCKR),可凍結 I/O 配置
● 模擬功能
● 復用功能輸入/輸出選擇寄存器(一個 I/O 最多可具有 16 個復用功能)
● 快速翻轉,每次翻轉最快只需要兩個時鐘周期
● 引腳復用非常靈活,允許將 I/O 引腳用作 GPIO 或多種外設功能中的一種

03. GPIO功能描述

根據數據手冊中列出的每個 I/O 端口的特性,可通過軟件將通用 I/O (GPIO) 端口的各個端口位分別配置為多種模式:
● 輸入浮空
● 輸入上拉
● 輸入下拉
● 模擬功能
● 具有上拉或下拉功能的開漏輸出
● 具有上拉或下拉功能的推挽輸出
● 具有上拉或下拉功能的復用功能推挽
● 具有上拉或下拉功能的復用功能開漏

04. I/O引腳復用器和映射

微控制器 I/O 引腳通過一個復用器連接到板載外設/模塊,該復用器一次僅允許一個外設的復用功能 (AF) 連接到 I/O 引腳。這可以確保共用同一個 I/O 引腳的外設之間不會發生沖突。

每個 I/O 引腳都有一個復用器,該復用器采用 16 路復用功能輸入(AF0 到 AF15),可通過GPIOx_AFRL(針對引腳 0 到 7)和 GPIOx_AFRH(針對引腳 8 到 15)寄存器對這些輸入進行配置。

● 完成復位后,所有 I/O 都會連接到系統的復用功能 0 (AF0)。
● 外設的復用功能映射到 AF1 至 AF13。
● Cortex?-M4F EVENTOUT 映射到 AF15。

05. I/O端口控制寄存器

每個 GPIO 有 4 個 32 位存儲器映射的控制寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR),可配置多達 16 個 I/O。

GPIOx_MODER 寄存器用于選擇 I/O 方向(輸入、輸出、AF、模擬)。

GPIOx_OTYPER 和 GPIOx_OSPEEDR 寄存器分別用于選擇輸出類型(推挽或開漏)和速度 (無論采用哪種 I/O 方向,都會直接將 I/O 速度引腳連接到相應的 GPIOx_OSPEEDR 寄存器位)。

無論采用哪種 I/O 方向,GPIOx_PUPDR 寄存器都用于選擇上拉/下拉。

06. I/O端口數據寄存器

每個 GPIO 都具有 2 個 16 位數據寄存器:輸入和輸出數據寄存器(GPIOx_IDR 和GPIOx_ODR)。GPIOx_ODR 用于存儲待輸出數據,可對其進行讀/寫訪問。通過 I/O 輸入的數據存儲到輸入數據寄存器 (GPIOx_IDR) 中,它是一個只讀寄存器。

07. I/O數據位操作

置位復位寄存器 (GPIOx_BSRR) 是一個 32 位寄存器,它允許應用程序在輸出數據寄存器(GPIOx_ODR) 中對各個單獨的數據位執行置位和復位操作。置位復位寄存器的大小是GPIOx_ODR 的二倍。

08. GPIO鎖定機制

通過將特定的寫序列應用到 GPIOx_LCKR 寄存器,可以凍結 GPIO 控制寄存器。凍結的寄存器包括 GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR、GPIOx_AFRL 和 GPIOx_AFRH。

要對 GPIOx_LCKR 寄存器執行寫操作,必須應用特定的寫/讀序列。當正確的 LOCK 序列應用到此寄存器的第 16 位后,會使用 LCKR[15:0] 的值來鎖定 I/O 的配置(在寫序列期間,LCKR[15:0] 的值必須相同)。將 LOCK 序列應用到某個端口位后,在執行下一次復位之前,將無法對該端口位的值進行修改。每個 GPIOx_LCKR 位都會凍結控制寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR、GPIOx_AFRL 和 GPIOx_AFRH)中的對應位。

09. GPIO寄存器描述

9.1 GPIO端口模式寄存器 (GPIOx_MODER) (x = A…I)

GPIO port mode register
偏移地址:0x00
復位值:
● 0xA800 0000(端口 A)
● 0x0000 0280(端口 B)
● 0x0000 0000(其它端口)

9.2 GPIO端口輸出類型寄存器 (GPIOx_OTYPER) (x = A…I)

GPIO port output type register
偏移地址:0x04
復位值:0x0000 0000

位 31:16 保留,必須保持復位值。
位 15:0 OTy[1:0] :端口 x 配置位 (Port x configuration bits) (y = 0…15)
這些位通過軟件寫入,用于配置 I/O 端口的輸出類型。
0:輸出推挽(復位狀態)
1:輸出開漏

9.3 GPIO端口輸出速度寄存器 (GPIOx_OSPEEDR) (x = A…I/)

GPIO port output speed register
偏移地址:0x08
復位值:
● 0x0000 00C0(端口 B)
● 0x0000 0000(其它端口)

9.4 GPIO端口上拉/下拉寄存器 (GPIOx_PUPDR) (x = A…I/)

GPIO port pull-up/pull-down register
偏移地址:0x0C
復位值:
● 0x6400 0000(端口 A)
● 0x0000 0100(端口 B)
● 0x0000 0000(其它端口)

位 2y:2y+1 PUPDRy[1:0] :端口 x 配置位 (Port x configuration bits) (y = 0…15)
這些位通過軟件寫入,用于配置 I/O 上拉或下拉。
00:無上拉或下拉
01:上拉
10:下拉
11:保留

9.5 GPIO端口輸入數據寄存器 (GPIOx_IDR) (x = A…I)

GPIO port input data register
偏移地址:0x10
復位值:0x0000 XXXX(其中 X 表示未定義)

9.6 GPIO端口輸出數據寄存器 (GPIOx_ODR) (x = A…I)

GPIO port output data register
偏移地址:0x14
復位值:0x0000 0000

9.7 GPIO端口置位/復位寄存器 (GPIOx_BSRR) (x = A…I)

GPIO port bit set/reset register
偏移地址:0x18
復位值:0x0000 0000

9.8 GPIO復用功能低位寄存器 (GPIOx_AFRL) (x = A…I)

GPIO alternate function low register
偏移地址:0x20
復位值:0x0000 0000

9.9 GPIO復用功能高位寄存器 (GPIOx_AFRH) (x = A…I)

GPIO alternate function high register
偏移地址:0x24
復位值:0x0000 0000

10. 附錄

10.1 【STM32】STM32系列教程匯總

網址:【STM32】STM32系列教程匯總

10.2 參考文檔

STM32F4xx英文參考手冊

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的【STM32】GPIO概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。