第6章 GPIO端口讲解
- 格式:ppt
- 大小:2.56 MB
- 文档页数:2
嵌入式最基础的GPIO接口操作了解一下!1、GPIOGPIO(General Purpose Input/Output Port),即通用输入输出端口,就是芯片的一些引脚。
作为输入端口时,我们可以通过它们读入引脚的状态--高电平或低电平,作为输出端口时,我们可以通过它们输出高电平或低电平来控制连接的外围设备。
S3C2440有130个GPIO引脚,分为A~J共9组:GPA、GPB、…、GPJ。
通过设置相应的寄存器来设置某个引脚的功能(输入或输出或是其他特殊功能)。
2、通过寄存器操作GPIO每个端口可以很容易的通过软件配置以满足各种系统配置和设计需求,在使用之前你必须定义每个引脚的功能,如果不是用于复用功能,则引脚可以配置为普通输入输出端口。
1)端口配置寄存器GPxCON(x为A~J)GPxCON是用于选择引脚功能。
PORT A的端口配置寄存器GPACON中每一位对应一个引脚(PORT A共23个引脚,bit0~bit22对应GPA0~GPA22)。
当某位被设为0时,相应的引脚被设置成输出引脚,此时可以在GPADAT中相应位写入0或1让此引脚输出低电平或高电平。
当某位被设为1时,相应的引脚被设为地址线或用于地址控制,此时GPADAT无用。
(GPACON通常被设为全1,以便访问外部存储器件)PORT B~PORT J的端口配置寄存器操作完全相同:GPxCON中每两位控制一个引脚,00为输入、01为输出、10为特殊功能、11保留。
2)端口数据寄存器GPxDAT(x为A~J)GPxDAT是用于读/写引脚数据。
当引脚被设为输入时,读此寄存器可得到相应引脚的电平状态是高还是低;当引脚被设为输出时,通过写此寄存器的相应位可设置相应引脚输出高电平或低电平。
3)端口上拉寄存器GPxUP(x为B~J,注意:PORT A端口没有这个寄存器)GPxUP是用于选择是否使用内部上拉电阻。
此寄存器的某位被设置为1时,相应引脚不使用内部上拉电阻;设置为0时,相应引脚使用内部上拉电阻。
GPIO结构1. 什么是GPIO?GPIO(General Purpose Input/Output)是通用输入输出的缩写,是指计算机系统中用于与外部设备进行通信的一组接口。
在现代计算机系统中,GPIO通常是通过芯片上的引脚实现的。
GPIO接口可以以输入或输出的方式与外部设备进行通信。
作为输入,GPIO接口可以接收来自外部设备的信号,如按钮的按下、传感器的检测等。
作为输出,GPIO 接口可以向外部设备发送信号,如控制LED灯的亮灭、控制电机的运转等。
2. GPIO的结构GPIO的结构通常由以下几个组成部分组成:2.1. 引脚GPIO的功能通过芯片上的引脚实现。
每个引脚都有一个特定的编号,用于标识该引脚的功能和位置。
在一些计算机系统中,引脚的编号可能是通过物理排列或者软件配置来确定的。
2.2. 寄存器GPIO的寄存器用于控制和配置引脚的功能和状态。
寄存器是计算机系统中的一种特殊存储器,用于存储特定的控制和状态信息。
通过对寄存器的读写操作,可以实现对GPIO引脚的配置和控制。
寄存器通常包括以下几个重要的部分:•数据寄存器(Data Register):用于读取和写入引脚的电平状态。
•方向寄存器(Direction Register):用于配置引脚的输入或输出方向。
•中断寄存器(Interrupt Register):用于配置引脚的中断功能。
2.3. 控制器GPIO的控制器是负责管理和控制GPIO的硬件模块。
控制器通常由一组寄存器和逻辑电路组成,用于处理GPIO的输入和输出。
控制器的功能包括:•配置引脚的输入输出方向。
•配置引脚的中断功能。
•读取和写入引脚的电平状态。
•控制引脚的上拉和下拉电阻。
2.4. 驱动程序GPIO的驱动程序是运行在计算机系统上的软件模块,用于提供对GPIO的操作接口。
驱动程序通过访问GPIO的寄存器和控制器,实现对GPIO引脚的配置和控制。
驱动程序通常包括以下几个重要的功能:•初始化GPIO的寄存器和控制器。
gpio手册祥细解
GPIO(General-Purpose Input/Output)是通用输入/输出接口的缩写,它是微控制器芯片上常见的接口之一。
GPIO接口可以用于控制外部设备、读取外部设备的状态或者实现与其他设备的通信。
在微控制器中,GPIO接口通常由多个寄存器组成,每个寄存器控制一个特定的GPIO引脚。
每个GPIO引脚都可以被配置为输入或输出模式,并且可以设置不同的工作模式和触发方式。
GPIO接口的主要寄存器包括:
1.端口配置寄存器(GPIOx_CRL/CRH):用于配置GPIO 引脚的工作模式和触发方式。
2.端口输入数据寄存器(GPIOx_IDR):用于读取GPIO 引脚的输入状态。
3.端口输出数据寄存器(GPIOx_ODR):用于设置GPIO 引脚的输出状态。
4.端口位清除寄存器(GPIOx_BRR):用于清除指定的GPIO位。
5.端口位设置/清除寄存器(GPIOx_BSRR):用于设置或清除指定的GPIO位。
6.端口配置锁定寄存器(GPIOx_LCKR):用于锁定GPIO 引脚的配置寄存器,防止意外修改。
在使用GPIO接口时,首先需要配置GPIO引脚的工作模式和触发方式,然后可以通过读取或设置端口输入/输出数据寄存器来控制外部设备或读取外部设备的状态。
同时,也可以使用位清除、位设置/清除等操作来控制特定的GPIO位。
需要注意的是,不同的微控制器可能具有不同的GPIO接口和寄存器配置,因此在使用时需要参考具体的微控制器手册或数据手册进行操作。
gpio端口的基本结构
GPIO端口是一种广泛使用的计算机外围接口,它具有对外围设备进行输入和输出信号调节的功能。
GPIO端口的基本结构主要由端口控制器(I/O控制器)、接口驱动器(输入/输出驱动器)和多路I/O端口构成。
端口控制器是GPIO端口的核心部件,它控制着整个GPIO端口系统的工作,它拥有许多特性,用于实现对端口的控制和诊断,并支持不同类型外设的通讯。
接口驱动器是端口控制器协同工作的另一部分,它负责将来自外设的信号转变为控制器可以识别的信号,以便控制器能够准确地识别外设,有效地驱动外设的工作。
最后,GPIO端口的基本结构还包括多路I/O端口,它提供与CPU 交互的接口,是CPU与外设的连接桥梁,可由外设传递信号和数据,也可由CPU接收外设传来的信号和数据,完成数据交换。
总之,GPIO端口的基本结构主要由端口控制器、接口驱动器和多路I/O端口构成,它们在GPIO端口的工作中起着不同的作用,支持不同类型外设的通讯,与CPU间的交互,从而实现对外围设备的输入和输出信号的控制和调节。
GPIO(General-Purpose Input/Output)——通用输入/输出口,对大多数从事电子行业的人来说并不是什么陌生的东西。
但它却是基础性的,很多MCU 的后续开发都得用到GPIO。
TM320F28335有88个IO口,为GPIO0至GPIO87,其中GPIO0至GPIO63可以配置为8个核心中断。
TM320F28335的GPIO口可以分为三组,分别为A口(GPIO0至GPIO31),B口(GPIO32至GPIO63)和C口(GPIO64至GPIO87)。
GPIO的寄存器可以分为三种,分别是GPIO控制寄存器,GPIO数据寄存器和GPIO中断与低功耗模式选择寄存器。
详见图1、2、3。
图1 GPIO控制寄存器图2 GPIO数据寄存器图3 GPIO中断与低功耗模式选择寄存器GPIO控制寄存器GPxCTRL(x=A,B,C)为配置为输入限制的引脚指定了采样周期。
采样周期介于限制采样周期之内,是相对于系统时钟周期的倍数。
具体的配置见图4,以A口为例。
图4 GPIO Port A Qualification Control (GPACTRL) Register Field Descriptions而GPIO限制选择寄存器GPxQSELy(x=A,B,C;y=1,2)指定了采样窗是3个采样点还是6个采样点。
具体的配置见图5,还是以A口为例。
图5 GPIO Port A Qualification Select 1 (GPAQSEL1) Register Field Descriptions以上寄存器主要是为GPIO的输入功能进行的配置。
通过,图6(Qualification Using Sampling Window)和图7(Input Qualifier Clock Cycles),我们可以很清楚的知道GPIO的输入限制是怎样完美的去除我们不需要的噪声的。
图6Qualification Using Sampling Window图7Input Qualifier Clock Cycles在图7中,输入限制将忽略这个尖刺小脉冲。
GPIO的设置与使用GPIO,全称为“General Purpose Input/Output”,即通用输入/输出端口。
它是单片机(或其他外设)上的一组可编程的通用引脚,可以配置为输入或输出,通过编程控制,与外界设备进行数据交互。
GPIO具有可编程性和通用性,因此在嵌入式系统中广泛应用于控制和通信。
1.引脚模式设置:GPIO引脚可以配置为不同的模式,例如输入模式、输出模式、复用模式等。
一般通过寄存器来配置引脚的模式。
对于输入模式,可以配置引脚的阻抗、上拉或下拉电阻;对于输出模式,可以配置引脚的电平状态;对于复用模式,可以选择引脚的功能和使用的外设。
2.引脚操作:一旦引脚被配置为输入或输出模式,就可以通过相应的寄存器对引脚进行操作。
对于输入引脚,可以获取引脚的电平状态,判断输入信号的逻辑值;对于输出引脚,可以设置引脚的电平状态,控制输出信号的逻辑值。
3.中断设置:GPIO引脚可以配置中断功能,这样当引脚的电平状态发生变化时,可以触发中断并执行相应的中断服务程序。
通过中断方式,可以实现对输入引脚的实时监测和响应。
4.外设控制:GPIO引脚可以与外设进行连接,并通过GPIO来控制外设的功能。
例如,可以通过GPIO控制LED的亮灭、驱动蜂鸣器的发声、读取按键的状态等。
这需要通过设置相应的引脚模式和操作寄存器来实现。
1.确定所需的GPIO引脚:根据具体需求,确定需要使用的GPIO引脚。
这可以通过查阅芯片手册或开发板资料来获取相应的引脚信息。
2.配置引脚模式:根据使用要求,将GPIO引脚配置为输入或输出模式。
这一般需要设置相应的寄存器,标志位或设置值。
3.进行引脚操作:根据GPIO引脚的模式,进行相应的读取或写入操作。
对于输入引脚,可以读取引脚的电平状态;对于输出引脚,可以设置引脚的电平状态。
4.设置中断:如果需要使用中断功能,可以配置相应的中断使能,并编写中断处理函数。
在引脚状态变化时,触发中断执行中断处理程序。
GPIO(General-Purpose Input/Output)——通用输入/输出口,对大多数从事电子行业的人来说并不是什么陌生的东西。
但它却是基础性的,很多MCU 的后续开发都得用到GPIO。
TM320F28335有88个IO口,为GPIO0至GPIO87,其中GPIO0至GPIO63可以配置为8个核心中断。
TM320F28335的GPIO口可以分为三组,分别为A口(GPIO0至GPIO31),B口(GPIO32至GPIO63)和C口(GPIO64至GPIO87)。
GPIO的寄存器可以分为三种,分别是GPIO控制寄存器,GPIO数据寄存器和GPIO中断与低功耗模式选择寄存器。
详见图1、2、3。
图1 GPIO控制寄存器图2 GPIO数据寄存器图3 GPIO中断与低功耗模式选择寄存器GPIO控制寄存器GPxCTRL(x=A,B,C)为配置为输入限制的引脚指定了采样周期。
采样周期介于限制采样周期之内,是相对于系统时钟周期的倍数。
具体的配置见图4,以A口为例。
图4 GPIO Port A Qualification Control (GPACTRL) Register Field Descriptions而GPIO限制选择寄存器GPxQSELy(x=A,B,C;y=1,2)指定了采样窗是3个采样点还是6个采样点。
具体的配置见图5,还是以A口为例。
图5 GPIO Port A Qualification Select 1 (GPAQSEL1) Register Field Descriptions以上寄存器主要是为GPIO的输入功能进行的配置。
通过,图6(Qualification Using Sampling Window)和图7(Input Qualifier Clock Cycles),我们可以很清楚的知道GPIO的输入限制是怎样完美的去除我们不需要的噪声的。
图6Qualification Using Sampling Window图7Input Qualifier Clock Cycles在图7中,输入限制将忽略这个尖刺小脉冲。
一文看懂GPIO!一、前言GPIO全称General Purpose Input Output 即通用输入/输出,其实GPIO的本质就是芯片的一个引脚,通常在ARM中所有的I/O都是通用的。
不过由于每个开发板上都会设计不同的外围电路,这就造成GPIO的功能可能有所不同,大部分GPIO都是有复用功能的,比如有些GPIO可能是串口的TX或RX,也可能是I2C的SCL或SDA线。
所以我们不仅要知道GPIO能够输出高低电平,还要理解为什么有些GPIO可以复用某些功能,而其他的不可以。
二、GPIO内部结构我们在使用GPIO的时候可能不会去想为什么我们通过写代码或者操作寄存器就可以控制一个引脚的高低电平。
今天就让我们一起来看看为什么我们通过操作寄存器(其实写代码的过程就是在操作寄存器)就能控制引脚输入或者输出。
我们想要想控制一个GPIO口的需要操作7个寄存器,分别是CRL,CRH,IDR,ODR,BRR,BSRR,LCKR 我们对GPIO的操作本质上就是在对这些寄存器进行读写操作,以下是这些寄存器的名称:GPIOx_CRL(x = A..E)端口配置低寄存器 32位寄存器GPIOx_CRH(x = A..E)端口配置高寄存器 32位寄存器GPIOx_IDR(x = A..E)端口输入数据寄存器 32位寄存器但仅用低16位GPIOx_ODR(x = A..E)端口输出数据寄存器 32位寄存器但仅用低16位GPIOx_BRR(x = A..E)端口位清除寄存器 16位寄存器GPIOx_BSRR(x = A..E)端口位设置/清除寄存器 16位寄存器GPIOx_LCKR(x = A..E)端口配置锁定寄存器 32位寄存器我们首先分析上面的结构电路:1、保护二极管:保护二极管从它的名字就不难想到他是用来对系统进行保护的,通过两个二极管的导通可以防止引脚外部输入电压过低或过高。
当电压过高时,上方的保护二极管导通。
当电压过低时,下方的二极管导通,防止不正常电压导入到芯片内部造成芯片烧毁。
GPIO参数配置GPIO是计算机的通用输入输出端口,可以通过设置参数来进行配置。
下面是一个包含1200字以上的GPIO参数配置详解。
功能配置是指对GPIO引脚的功能进行配置,主要包括输入和输出功能。
对于输入功能,可以设置引脚为普通输入模式或者带上拉或下拉电阻的输入模式。
对于输出功能,可以设置引脚为普通输出模式、开漏模式或者复用功能模式。
电气特性配置是指对GPIO引脚的电气特性进行配置,包括输出驱动能力、输出电平模式、输入电平模式等。
输出驱动能力可以设置为低驱动或者高驱动。
输出电平模式可以设置为默认模式、推挽输出模式或者开漏输出模式。
输入电平模式可以设置为默认模式、上拉输入模式或者下拉输入模式。
中断配置是指对GPIO引脚的中断功能进行配置,包括中断使能、中断触发方式、中断优先级等。
中断使能可以设置为使能或者禁止中断。
中断触发方式可以设置为上升沿触发、下降沿触发、边沿触发或者电平触发。
中断优先级可以设置为低优先级或者高优先级。
为了进行GPIO参数配置,需要首先获取GPIO控制器的句柄,通过该句柄可以进行GPIO参数的读写操作。
在进行GPIO参数配置之前,需要先对GPIO进行初始化,设置GPIO的基本属性。
以Linux系统为例,通过终端使用GPIO库函数来进行GPIO参数配置。
首先,需要引入相关的头文件,如`<sys/ioctl.h>`和`<fcntl.h>`等。
然后,通过打开GPIO设备文件获取GPIO控制器的句柄。
接下来,可以通过调用GPIO库函数来设置GPIO的功能、电气特性和中断配置等参数。
例如,通过`ioctl`函数可以设置GPIO的功能,通过`ioctl`函数的第三个参数设置为`GPIO_SET_INPUT`或者`GPIO_SET_OUTPUT`来分别设置GPIO为输入功能或者输出功能。
要配置GPIO引脚的电气特性,可以使用`ioctl`函数的第三个参数设置为`GPIO_SET_DRIVE`、`GPIO_SET_OUTPUT_MODE`或者`GPIO_SET_INPUT_MODE`来分别设置GPIO的输出驱动能力、输出电平模式和输入电平模式。