GPIO相關寄存器配置詳解

2020-11-26 電子工程世界

一、寄存器介紹(詳見中文參考手冊7.4):


每組GPIO下面包含10個寄存器。也就是10個寄存器,一共可以控制一組GPIO的16個IO口。最多7組IO,也就是70個寄存器。


寄存器分別如下:


一個埠模式寄存器(GPIOx_MODER)


一個埠輸出類型寄存器(GPIOx_OTYPER)


一個埠輸出速度寄存器(GPIOx_OSPEEDR)


一個埠上拉下拉寄存器(GPIOx_PUPDR)


一個埠輸入數據寄存器(GPIOx_IDR)


一個埠輸出數據寄存器(GPIOx_ODR)


一個埠置位/復位寄存器(GPIOx_BSRR)


一個埠配置鎖存寄存器(GPIOx_LCKR)


兩個復用功能寄存器(低位GPIOx_AFRL& GPIOx_AFRH)


-----------------------------------------------------------------------------------------------------------------------------------------------------------


二、寄存器詳解


①埠模式寄存器(GPIOx_MODER)

②埠輸出類型寄存器(GPIOx_OTYPER)

③輸出速度寄存器(GPIOx_OSPEEDR)

④埠上拉下拉寄存器(GPIOx_PUPDR)


⑤埠輸出數據寄存器(GPIOx_ODR)

⑥埠輸入數據寄存器(GPIOx_IDR)


⑦埠置位/復位寄存器(GPIOx_BSRR)

----------------------------------------------------------------------------------------------------------------------------------


注意:如果在配置IO的寄存器前一定要先配置時鐘的寄存器,與庫函數版本一樣


         各總線、外設基地址可參考STM32F4xx中文參考手冊2.3節的存儲器映射

關鍵字:GPIO  寄存器  配置 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/ic459540.html 本網站轉載的所有的文章、圖片、音頻視頻文件等資料的版權歸版權所有人所有,本站採用的非本站原創文章及圖片等內容無法一一聯繫確認版權者。如果本網所選內容的文章作者及編輯認為其作品不宜公開自由傳播,或不應無償使用,請及時通過電子郵件或電話通知我們,以迅速採取適當措施,避免給雙方造成不必要的經濟損失。

推薦閱讀

GPIO的描述和配置

首先介紹stm32的GPIO,這是入門的起點,也是最容易上手的部分。一、GPIO的綜合描述stm32每一個GPIO埠擁有2個32bits的configuration寄存器(GPIOx_CRL,GPIOx_CRH),2個32bits的數據寄存器(GPIOx_IDR,GPIOx_ODR),1個32bits的set/reset寄存器(GPIOx_BSRR),1個16bits的reset寄存器(GPIOx_BRR)和1個32bits的Lock寄存器(GPIOx_LCKR)。(一)每一個IO引腳都可以使用軟體配置為以下幾種模式:   1. 浮空輸入  2. 帶上拉輸入

發表於 2020-11-10

STM32的GPIO口的8種配置模式

速度低於設計時速時,可以平穩地運行,如果超過設計時速就會顛簸,甚至翻車。    關鍵是: GPIO的引腳速度跟應用相匹配,速度配置越高,噪聲越大,功耗越大。    帶寬速度高的驅動器耗電大、噪聲也大,帶寬低的驅動器耗電小、噪聲也小。使用合適的驅動器可以降低功耗和噪聲。    GPIO的引腳速度跟應用匹配(推薦10倍以上)。比如:    1.1.1 對於串口,假如最大波特率只需115.2k,那麼用2M的GPIO的引腳速度就夠了,既省電也噪聲小。  &nbsp

發表於 2020-11-09

STM32F10x晶片GPIO/AFIO埠配置總結

1、介紹STM32F10x晶片的GPIO/AFIO配置主要包括以下幾方面知識:在時鐘控制模塊中配置好相應總線時鐘,並在總線上使能對應的GPIO口(AFIO口,需要的話)時鐘後:根據需求配置相應GPIO埠為對應的輸入/輸出模式,按需求更改/讀取埠的數據;埠功能重映射;若用外部中斷,則將中斷線與對應引腳連結起來。STM32F10x晶片的每個GPIO埠都有7個相關的寄存器:2個32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個32位數據寄存器(GPIOx_IDR,GPIOx_ODR),一個32位置位/復位寄存器(GPIOx_BSRR),一個16位復位寄存器(GPIOx_BRR)和一個32位鎖定寄存器(GPIOx

發表於 2020-10-28

stm32 GPIO配置以及什麼時候用 GPIO_InitStructure

問題一:配置GPIO的步驟 現在做一個最簡單的GPIO控制LED的 GPIO初始化 (1)初始化結構體        GPIO_InitTypeDef GPIO_InitStructure; (2)使能相應的時鐘(程序最初應該有#define RCC_GPIO_LED  GPIOB 或其他組埠)        RCC_APB2PeriphClockCmd(RCC_GPIO_LED  , ENABLE); &nbsp

發表於 2020-10-19

stm32庫函數GPIO_Init()解析

GPIO_Init函數是IO引腳的初始化函數,進行個個引腳的初始化配置,主要接受兩個參數,一個是配置引腳組(GPIO_TypeDef* GPIOx),一個是配置的參數( GPIO_InitTypeDef* GPIO_InitStruct),具體如下void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)/*其中第一個參數為那組引腳,每組擁有16個引腳,每組都具有不同的寄存器配置地址,第二個參數是一個數據結構,也就是將基本配置信息放在這個數據結構裡面,再將這個結構傳入函數進行配置*///其中數據機構可以表示為如下typedef struct

發表於 2020-10-19

通用輸入輸出口(GPIO)

1概述 埠I/O埠主要功能是用於內部單片機和外設進行通信的媒介。一個埠最多有8個引腳。引腳 每個引腳都是獨立的,也就是說當我們對其中一個引腳進行操作的時候不會影響到其他引腳。我們可以對引腳單獨設置為數字輸入或者數字輸出。其中有些引腳還可以用著模擬輸入和和外設中斷。同一時刻只有一個功能映射到同一個引腳。GPIO主要功能(我只列舉我比較陌生的)輸入兼容5v電壓I/O口工作電壓範圍為1.6V到VddiomaxI/O口的配置和使用IO口常用的寄存器有5個ODR  IDR  DDR  CR1  CR2數據輸出寄存器ODR    輸入寄存器IDR &nbsp

發表於 2020-09-24

相關焦點

  • 嵌入式Linux設備驅動開發之:GPIO驅動程序實例
    根據各種系統設計的需求,通過軟體方法可以將這些埠配置成具有相應功能(例如:外部中斷或數據總線)的埠。為了控制這些埠,S3C2410處理器為每個埠組分別提供幾種相應的控制寄存器。其中最常用的有埠配置寄存器(GPACON~GPHCON)和埠數據寄存器(GPADAT~GPHDAT)。
  • STM32 GPIO 相關寄存器(二)
    首先介紹一下基本的GPIO相關的寄存器:1,GPIOX_CRL 低8位埠配置寄存器這個寄存器主要是對配置管腳是輸入還是輸出:其中1)MODEy[1:0]主要是配置是輸入埠還是輸出埠的。配置為輸出得時候還可以配置輸出的管腳速度等級。
  • GPIO內部結構、工作原理及相關寄存器詳解(以STM32為例)
    開漏推輓輸出模式的輸出電平是由復用功能外設輸出決定的  9,推輓輸出和開漏輸出的區別:  推輓輸出:  可以輸出強高/強低電平,可以連接數字器件  開漏輸出:  只能輸出強低電平(高電平需要依靠外部上拉電子拉高),適合做電流型驅動,吸收電流能力較強(20ma之內)  五,STM32-IO口相關寄存器
  • STM32單片機GPIO寄存器
    首先介紹一下基本的GPIO相關的寄存器:>1, >GPIOX_CRL 低8位埠配置寄存器這個寄存器主要是對配置管腳是輸入還是輸出:其中配置為輸出得時候還可以配置輸出的管腳速度等級。2)CNFy[1:0] 主要是兩種形式,在埠配置輸入的時候,即MODEy[1:0]位00(輸入),用來配置輸入的模式,主要是模擬輸入,浮空輸入,上拉模式和下拉模式。
  • LPC2103之GPIO寄存器
    寄存器描述訪問復位值地址FIODIR快速GPIO管腳方向控制寄存器。該寄存器獨立控制每個管腳方向,寫1置相應管腳為輸出。R/W0x0000 00000x3FFF C000FIO0DIRFIOMASK快速GPIO管腳屏蔽寄存器,對快速IO管腳的任何操作只有在對該寄存器對應位激活(寫0)時有效R/W0x0000 00000x3FFF C010FIO0MASK
  • FPGA開發之GPIO配置,以ZYNQ為例
    DATA_RO寄存器是讀取GPIO引腳值寄存器,不論該GPIO引腳配置為輸入還是輸出,都能正確讀取該GPIO引腳值。如果該引腳的功能沒有配置成GPIO功能,讀取的值為隨機值,因為該寄存器只能讀取GPIO引腳值。
  • MIO與EMIO的關係解析 GPIO、MIO、EMIO的區別
    基地址就在配置信息查了,如何獲得gpio的配置信息: 首先實例化一個XGpioPs_Config類型的指針。使用XGpioPs_LookupConfig函數,它能夠在配置信息中找到對應ID的配置信息: 所以就很明確了: xgpio_config = XGpioPs_LookupConfig(XPAR_PS7_GPIO_0_DEVICE_ID);//找分配的MIO配置信息(基地址)status = XGpioPs_CfgInitialize(&xgpio, xgpio_config
  • STM32教程(五)HAL庫之GPIO函數及實例詳細介紹!
    今天介紹STM32 HAL庫的GPIO函數庫,首先打開stm32f4xx_hal_gpio.h文件,我們能看到一些結構體定義以及GPIO引腳的地址定義等等,這些都很好理解,我們需要重點看HAL庫中GPIO的函數庫有哪些?以及這些函數庫有什麼作用以及怎麼使用這些函數?
  • STM32F1與STM32F0在GPIO_TypeDef 寄存器方面的不同
    -發送和接受共用的可編程波特率,最高可達4.5Mbits/s 可編程的數據字長度(8位或者9位);可配置的停止位(支持1或者2位停止位);可配置的使用DMA多緩衝器通信。單獨的發送器和接收器使能位。檢測標誌:① 接受緩衝器  ②發送緩衝器空 ③傳輸結束標誌 多個帶標誌的中斷源。觸發中斷。 其他:校驗控制,四個錯誤檢測標誌。
  • GPIO內部結構及工作原理
    可以輸出強高/強低電平,可以連接數字器件 開漏輸出: 只能輸出強低電平(高電平需要依靠外部上拉電子拉高),適合做電流型驅動,吸收電流能力較強(20ma之內)   五、STM32-IO口相關寄存器 每組GPIO包含系列7個寄存器(7組GPIO共包含7*7=49個寄存器) 兩個32位配置寄存器 GPIOx_CRL     低16位
  • FSMC驅動TFTLCD原理,時序和寄存器介紹
    STM32的FSMC存儲塊1(Bank1)用於驅動NOR FLASH/SRAM/PSRAM Bank1被分為4個區,每個區管理64M字節空間,每個區都有獨立的寄存器對所連接的存儲器進行配置。 A的讀寫時序六,FSMC相關寄存器介紹對於NOR FLASH/PSRAM控制器-存儲塊1,可通過FSMC_BCRx、FSMC_BTRx和FSMC_BWTRx寄存器設置(其中x=1~4,對應4個區)。
  • STM32 GPIO工作原理及LED電路原理
    9,推輓輸出和開漏輸出的區別:推輓輸出:可以輸出強高/強低電平,可以連接數字器件開漏輸出:只能輸出強低電平(高電平需要依靠外部上拉電子拉高),適合做電流型驅動,吸收電流能力較強(20ma之內)五、STM32-IO口相關寄存器每組GPIO包含系列7個寄存器(7組GPIO共包含7*7=49個寄存器)兩個32位配置寄存器GPIOx_CRL 低16位GPIOx_CRH 高16位兩個32位數據寄存器GPIOx_IDR
  • LPC1114通用輸入/輸出埠(GPIO)續
    接著看IEV寄存器,其偏移地址為0x800C,屬性為可讀可寫,它負責配合上面的IS寄存器來確定具體的觸發方式。即:若IS配置為邊沿觸發方式,則IEV負責選擇是上跳沿還是下跳沿;若IS配置為電平觸發方式,則IVE負責選擇是高電平觸發還是低電平觸發。
  • stm32 怎樣釋放pa15,pb3,pb4作為gpio口使用
    通過設置復用重映射和調試I/O配置寄存器(AFIO_MAPR)的SWJ_CFG[2:0]位,配置為「啟用SW-DP,關閉JTAG-DP」來釋放PA15(JTDI), PB3(JTDO), PB4(NJTRST)引腳。詳見中文參考手冊V10.2版本p118 表35 調試埠映像。
  • 移位寄存器的特點_移位寄存器工作原理
    這種移位寄存器是一維的,事實上還有多維的移位寄存器,即輸入、輸出的數據本身就是一些列位。實現這種多維移位寄存器的方法可以是將幾個具有相同位數的移位寄存器並聯起來。   移位寄存器分類   根據移位方向,常把它分成左移寄存器、右移寄存器和雙向移位寄存器三種。
  • S3C2410 GPIO接口
    S3C2410 GPIO硬體介紹 (1) GPxCON ---- 用於選擇pin的功能 它用於配置pin的功能。 GPA與其它7組,在功能選擇方面有所不同。 GPACON中每一位對應一根pin: 置0 ---- 配置相應pin為輸出pin,此時可以向GPADAT中的相應位寫入1/0,來讓此pin為低電平/高電平.
  • STM32學習筆記——使用函數庫編程控制GPIO口輸出
    看了網上許多人的代碼以及各類開發板所帶的例程,大多數使用的都是官方發布的函數庫來編程,通過查詢後發現,使用函數庫來編程可以簡化開發過程,並不需要追溯到各個寄存器,通過查看庫手冊,新手也可以快速應用STM32,因此
  • 移位寄存器的原理
    現在小編大家知道移位寄存器嗎? 移位寄存器的原理 移位寄存器不僅能寄存數據,而且在時鐘信號的最用下使它其中的數據依次左移或者右移。 四位移位寄存器的原理:F0、F1、F2、F3是四個邊沿觸發的觸發器D,每一個觸發器的輸出端Q接到右邊一個觸發器的輸入端D。
  • stm32f407之高級定時器 死區互補PWM(操作寄存器)
    其實死區互補PWM跟通用定時器的PWM配置差異不大,只是需要設置多CCER寄存器中的幾個位以及剎車與死區寄存器BDTR。對寄存器的具體描述請參考數據手冊。配置步驟:1.     使能相關時鐘。2.     配置相關的引腳模式、速度、以及復用功能。3.     使能TIM時鐘4.     設置分頻。