GPIO的上拉下拉功能說明

2021-01-08 電子工程世界

The port pull-up register controls the pull-up resister enable/disable of each port group. When the corresponding bit is 0, the pull-up resister of the pin is enabled. When 1, the pull-up resister is disabled.

If the port pull-up register is enabled then the pull-up resisters work without pin’s functional setting(input, output,DATAn, EINTn and etc)

上拉寄存器是控制對應埠上拉使能的。當對應位為0時,設置對應引腳上拉使能,為1時,禁止對應引腳上拉使能。如果上拉寄存器使能,無論引腳功能寄存器如何設置(輸入,輸出,數據,中斷等),對應引腳輸出高電平。

      可見對應於S3C2410的GPB-BPH口內部有上拉電阻寄存器,當相應的上拉電阻使能時,對應的I/O引腳懸空時,表現出高電平。反之,表現出低電平。

   上拉是一個電阻接到一個電壓,其實就是增強IO的驅動能力。
   下拉是一個電阻接到地,保證IO口是低電平。

關鍵字:GPIO  上拉  下拉功能 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/2015/1027/article_23319.html

推薦閱讀

jz2440裸板開發之GPIO:點亮一個led燈(1)

實驗目的:點亮一個led燈。(使用arm彙編指令)實驗原理:在這裡點亮一個nLED_2,其對用的引腳是GPF5,在GPIO中,每個引腳對有配置寄存器和數據寄存器,對於本例其配置寄存器為GPFCON:0x56000050,和數據寄存器GPFDATA:0x56000054.要設置GPF5(GPF5為GPFCON的第十和十一引腳,【11,10】=01時為輸出)為輸出引腳,並根據電路原理圖,可知是設為低電平,才能點亮LED2.所以[0x56000050]=0x00000400).   [0x56000054]=0x00000000     實驗步驟:在linux下編輯源程序,然後利用

發表於 2020-12-23

STM32F103 GPIO基本原理與寄存器

GPIO基本原理與寄存器配置STM32F103ZET6一共有7組IO口每組IO口有16個IO一共16X7=112個IOGPIOA,GPIOB—GPIOG4種輸入模式:輸入浮空輸入上拉輸入下拉模擬輸入4種輸出模式:開漏輸出開漏復用功能推挽式輸出推挽式復用功能3種最大翻轉速度:-2MHZ-10MHz-50MHz上電復位後,GPIO默認為浮空狀態,部分特殊功能引腳為特定狀態。推輓輸出:可以輸出強高低電平,連接數字器件開漏輸出:只可以輸出強低電平,高電平得靠外部電阻拉高。輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)。每組GPIO埠的寄存器包括:兩個32

發表於 2020-12-23

STM32:stm32f10x_gpio.c中GPIO_Init的分析說明

1 /**2 *函數功能:初始化引腳模式3 *參數說明:GPIOx,該參數為GPIO_TypeDef 類型的指針,指向GPIO 埠的地址4 * GPIO_InitTypeDef:GPIO_InitTypeDef 結構體指針,指向初始化變量5 */6 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)7 {8         uint32_t currentmode =0x00,currentpin = 0x00,pinpos = 0x00,pos = 0x00;9   &nbsp

發表於 2020-12-23

STM32個人學習筆記-第二集(F4GPIO寄存器介紹)

一,GPIO口寄存器GPIO有九組IO口,分別用大寫字母表示,即,x=A/B/C/D/E/F/G/H/I.IO口可以由軟體配置成如下8種模式1,輸入浮空2,輸入上拉3,輸入下拉4,模擬輸入5,開漏輸出6,推輓輸出7,推挽式復用功能8,開漏式復用功能二,IO口常用的8個寄存器1,MODER寄存器該寄存器是GPIO埠模式控制寄存器,用於控制IO口的工作模式每組IO下有16個IO口,該寄存器共32位,每2個位控制1個IO,不同設置所對應的模式見上表2,OTYPER寄存器這個寄存器用於控制GPIO的輸出類型,低16位有效,每一個位控制一個IO口,復位後該寄存器值都是03,OSPEEDR寄存器該寄存器控制GPIOx的輸出速度,該寄存器

發表於 2020-12-22

STM32的GPIO的寄存器配置學習1

本篇文章主要是學習以M3內核的STM32的GPIO的寄存器的配置,為什麼要學習寄存器,而不利用庫函數呢?我只能說為了讓學的知識更加牢固吧!當然,你可以直接去利用庫函數,但是如果你能認真讀完本篇博客,你會對知識豁然開朗!加油吧!STM32 的每個 IO 埠都有 7 個寄存器來控制。他們分別是:配置模式的 2 個 32 位的埠配置寄存器 CRL 和 CRH;2 個 32 位的數據寄存器 IDR 和 ODR;1 個 32 位的置位/復位寄存器BSRR;一個 16 位的復位寄存器 BRR;1 個 32 位的鎖存寄存器 LCKR;這裡我們僅介紹常用的幾個寄存器,我們常用的 IO 埠寄存器只有 4 個:CRL、CRH、IDR、ODR

發表於 2020-12-22

STM32L1xx的庫函數有個Bug(stm32l1xx_gpio.c)

在使用STM32L151的時候遇到 GPIO_PinAFConfig(xx,xx,xx)函數無效,有時候還有導致程序HardFault的問題。之前遇到就使用直接寄存器操作避免了這個問題,這次出現了Hardfault,我想這得找找原因了,不然每次都得修改寄存器操作,麻煩的很。文件「stm32l1xx_gpio.c」中關於GPIO_PinAFConfig 函數式這麼定義的。當使用的引腳號大於8 的時候會導致hardFault的發生。void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF){  uint32

發表於 2020-12-22

相關焦點

  • LinuxGPIO操作和MTK平臺GPIO
    #GPIO_GPIO_SYSFS打開後,GPIO基本操作導出   /sys/class/gpio# echo 12> export設置方向      /sys/class/gpio/gpio12# echo out > direction查看方向      /sys/class/gpio/gpio12# cat direction設置輸出      /sys/class/gpio
  • ARM Linux下訪問GPIO埠
    GPIO(GeneralPurpose Input/Output的縮寫)就是晶片的引腳,引腳是可編程的可對引腳的工作模式進行設置:輸入模式(檢測輸入信號),輸出模式(輸出0或1),高阻狀態(常用於AD轉換),還有禁止或允許上內部下拉電阻(上拉:管腳通過電阻接高電平,下拉:管腳通過電阻接地,也可以外部接上拉或下拉電阻),還有管腳復用等功能,即通過對內部寄存器的設置使引腳既可以工作在一般模式
  • stm32H7系列GPIO引腳模式如何選擇及開漏,推輓輸出模式使用場景
    gpio口大家都理解,就是一般用來輸出高低電平而已。但實際配置時就會發現有很多問題,尤其是GPIO埠引腳的一些模式參數問題更是難以理解。今天我就從我自己理解的角度來跟大家說說:開漏,推挽,上拉,下拉。
  • 深入了解上拉電阻和下拉電阻
    上拉電阻和下拉電阻是經常提到也是經常用到的電阻。在每個系統的設計中都用到了大量的上拉電阻和下拉電阻。在上拉電阻和下拉電阻的電路中,經常有的疑問是:上拉電阻為何能上拉?上拉就是將不確定的信號通過一個電阻鉗位在高電平,電阻同時起限流作用,下拉同理。對於非集電極(或漏極)開路輸出型電路(如普通門電路,其提升電流和電壓的能力是有限的,上拉和下拉電阻的主要功能是為集電極開路輸出型電路提供輸出電流通道。
  • 關於stm32的GPIO的操作
    > 首先簡述一下stm3的gpio接口(interface):主機(CPU)與外部設備(指MCU片上外設)之間緩衝電路。GPIOx_PUPDR:選擇I/O埠為 無上拉或下拉/上拉/下拉/保留(與IO埠方向無關)。2、2個32位數據寄存器:GPIOx_IDR、GPIOx_ODRGPIOx_IDR:這些寄存器位為只讀 形式,並且只能在字模式下訪問。
  • 一文讓你讀懂上拉電阻與下拉電阻
    一文讓你讀懂上拉電阻與下拉電阻 玩轉單片機 發表於 2021-01-02 17:01:00   上拉(Pull Up )或下拉(Pull Down)電阻(兩者統稱為「拉電阻」)最基本的作用是:將狀態不確定的信號線通過一個電阻將其箝位至高電平
  • GPIO電路圖與上拉電阻的作用(附詳細分析)
    GPIO口的定義:GPIO口,通用輸入輸出,這個大家都知道,但是輸入,輸出的電路是什麼樣的,其實並不用太關心,只需配置寄存器即可,但是還是要摸一摸,為了方便理解,引入了單片機的IO口原理圖來說明(道理是一樣的)。
  • STM32的GPIO使用的函數剖析
    這個函數的實現是在Stm32f10x_gpio.c文件中,若要使用該函數在相應的應用程式的前面包含Stm32f10x_gpio.h頭文件。1、參數GPIO_TypeDef該函數的第一個參數為GPIO_TypeDef,它是一個結構體類型,該類型在Stm32f10x.h中被定義。
  • 從頭到尾開發一款APP:為列表添加下拉刷新和上拉加載更多功能
    這期我們需要來為首頁列表增加下拉刷新和上拉加載更多的效果,同時也為列表裡面的每一項添加點擊時的水波紋效果。看一下調整過的initRequest函數,定義start和end變量是為了後面上拉加載更多做鋪墊
  • AVR單片機IO口結構和上拉和下拉電阻的作用
    為搞清IO結構,首先看看上拉和下拉電阻的作用。本文引用地址:http://www.eepw.com.cn/article/201811/394646.htm  一、上拉電阻  上拉就是將不確定的信號通過一個電阻鉗位在高電平!電阻同時起限流作用!下拉同理!  上拉電阻是用來解決總線驅動能力不足時提供電流的。一般說法是拉電流,下拉電阻是用來吸收電流。
  • dm6441的gpio驅動
    由數據手冊知道gpio5,6,7默認是gpio功能。對mux_cfg.c的分析對MUX_CFG()的參數解釋第一個是描述(和數據手冊p72上要對應),第二個是pinmux0還是1,第三個是寄存器偏移。如果你要改變引腳的模式,把對應引腳設置成0,再把其他功能設為1。(這是我的理解,參考下面的I2C和GPIO43_44設置)。
  • 學習編程你應該了解GPIO Zero與RPi GPIO的不同
    我們在Raspberry Pi按鈕教程中使用了這個確切的功能,這是熟悉庫中差異的好方法。RPi.GPIO庫的用戶會注意到Pi的內部上拉/下拉電阻未在代碼中設置。這提出了一個有趣的問題。初學者了解上拉/下拉電阻是否必不可少?Ben Nuttall再次回答了這個問題:總的來說,GPIO Zero的簡單方法對於初學者和退伍軍人來說都是一件好事。
  • vue使用vant實現tab切換,使用nutui實現上拉加載下拉刷新
    本次demo主要實現的功能:1. 使用第三方 vant 組件庫的tab標籤實現tab欄的切換,2.使用第三方 nutui 組件庫實現各tab中的內容列表的上拉加載,下拉刷新。利用nutui的Scroller組件實現內容列表的上拉加載下拉刷新功能,每個tab中的數據我是寫在各自對應子組件中,下邊以newsTab子組件為例:newsTab組件的template塊的代碼如圖:在data中定義需要用到的屬性
  • 【STM32】GPIO工作原理(八種工作方式分析,附電路圖)
    STM32的GPIO工作方式GPIO支持4種輸入模式(浮空輸入、上拉輸入、下拉輸入、模擬輸入)和4種輸出模式(開漏輸出、開漏復用輸出、推輓輸出、推挽復用輸出)。同時,GPIO還支持三種最大翻轉速度(2MHz、10MHz、50MHz)。每個I/O口可以自由編程,但I/O口寄存器必須按32位字被訪問。
  • 「正點原子Linux連載」第四十五章 pinctrl和gpio子系統實驗一
    第四十五章 pinctrl和gpio子系統實驗上一章我們編寫了基於設備樹的LED驅動,但是驅動的本質還是沒變,都是配置LED燈所使用的GPIO寄存器,驅動開發方式和裸機基本沒啥區別。此外我們還需要配置pin的電氣特性,比如上/下拉、速度、驅動能力等等。傳統的配置pin的方式就是直接操作相應的寄存器,但是這種配置方式比較繁瑣、而且容易出問題(比如pin功能衝突)。pinctrl子系統就是為了解決這個問題而引入的,pinctrl子系統主要工作內容如下:①、獲取設備樹中pin信息。
  • GPIO子系統重要概念
    作者:韋東山本文字數:3161,閱讀時長:5分鐘1.1 引入要操作GPIO引腳,先把所用引腳配置為GPIO功能我們要做的是找到它名字,比如「gpio1」,然後指定要用它裡面的哪個引腳,比如<&gpio1 0>。
  • GPIO內部結構及工作原理
    1)外部通過IO口輸入電平,外部電平通過上下拉部分(浮空模式下都關閉,既無上拉也無下拉電阻) 2)傳輸到施密特觸發器(此時施密特觸發器為打開狀態) 和輸入浮空模式相比較,不同之處在於內部有一個上拉電阻連接到VDD(輸入上拉模式下,上拉電阻開關接通,阻值約30-50K) 外部輸入通過上拉電阻,施密特觸發器存入輸入數據寄存器
  • LPC1768外部中斷與GPIO中斷
    LPC1768的外部中斷嚴格來說只有四個,分別是EINT0,EINT1,EINT2,EINT3,技術手冊上有如下說明IRQn);//使能中斷}中斷處理函數中流程如下void EINT1_IRQHandler(void){ if(Eint1GetFlag()) { Eint1ClearFlag(); }} 從這一點看,似乎1768的中斷數量少了點,但是在gpio
  • Linux CommonClock Framework分析之四 gpio clk gate驅動實現
    前面我們已經完成了CCF子系統的分析,也說明了如何實現CCF驅動,本章為該專欄的最後一篇文章, 本章我們將實現一個虛擬的gpio clk gate驅動。本章大概分為如下幾個章節:一、 本次驅動開發涉及的知識點 二、clk provider driver的實現流程說明 三、gpio clk gate driver驅動設計一、 本次驅動開發涉及的知識點本次驅動實踐主要涉及如下幾個方面的知識點
  • 基於Linux系統實現DragonBoard 410c GPIO的控制
    通過晶片的GPIO口輸出電平去控制外部設備,如繼電器、LED或者觸發某些模塊進行工作是嵌入式控制系統常用的功能,也是實現許多複雜控制系統的基礎,本文將教大家基於DragonBoard 410c GPIO開發板在linux的環境下完成對DragonBoard 410c GPIO的控制,並且通過控制按鍵和點亮LED等進行實例測試以熟悉整個GPIO操作過程。