1_通用输入输出(GPIO)(免费下载)
目录第1章通用输入输出(GPIO) (1)1.1 GPIO概述 (1)1.2 各种模式下的GPIO (2)1.3 GPIO库函数及例程 (4)第1章通用输入输出(GPIO)函 数 原 型页码void GPIODirModeSet(unsigned long ulPort, unsigned char ucPins, unsigned long ulPinIO) 5 unsigned long GPIODirModeGet(unsigned long ulPort, unsigned char ucPin) 6 void GPIOPadConfigSet(unsigned long ulPort, unsigned char ucPins,6unsigned long ulStrength, unsigned long ulPadType)void GPIOPadConfigGet(unsigned long ulPort, unsigned char ucPin,7unsigned long *pulStrength, unsigned long *pulPadType)void GPIOPinTypeGPIOInput(unsigned long ulPort, unsigned char ucPins) 7 void GPIOPinTypeGPIOOutput(unsigned long ulPort, unsigned char ucPins) 7 void GPIOPinTypeGPIOOutputOD(unsigned long ulPort, unsigned char ucPins) 7 void GPIOPinTypeADC(unsigned long ulPort, unsigned char ucPins) 8 void GPIOPinTypeCAN(unsigned long ulPort, unsigned char ucPins) 8 void GPIOPinTypeComparator(unsigned long ulPort, unsigned char ucPins) 8 void GPIOPinTypeI2C(unsigned long ulPort, unsigned char ucPins) 8 void GPIOPinTypePWM(unsigned long ulPort, unsigned char ucPins) 8 void GPIOPinTypeQEI(unsigned long ulPort, unsigned char ucPins) 9 void GPIOPinTypeSSI(unsigned long ulPort, unsigned char ucPins) 9 void GPIOPinTypeTimer(unsigned long ulPort, unsigned char ucPins) 9 void GPIOPinTypeUART(unsigned long ulPort, unsigned char ucPins) 9 void GPIOPinTypeUSBDigital(unsigned long ulPort, unsigned char ucPins) 9 void GPIOPinWrite(unsigned long ulPort, unsigned char ucPins, unsigned char ucVal) 10 long GPIOPinRead(unsigned long ulPort, unsigned char ucPins) 10 void GPIOIntTypeSet(unsigned long ulPort, unsigned char ucPins, unsigned long ulIntType) 12 unsigned long GPIOIntTypeGet(unsigned long ulPort, unsigned char ucPin) 12 void GPIOPinIntEnable(unsigned long ulPort, unsigned char ucPins) 12 void GPIOPinIntDisable(unsigned long ulPort, unsigned char ucPins) 13 long GPIOPinIntStatus(unsigned long ulPort, tBoolean bMasked) 13 void GPIOPinIntClear(unsigned long ulPort, unsigned char ucPins) 13 void GPIOPortIntRegister(unsigned long ulPort, void (*pfnIntHandler)(void)) 13 void GPIOPortIntUnregister(unsigned long ulPort) 131.1 GPIO概述I/O(Input/Output)接口是一颗微控制器必须具备的最基本外设功能。
在Stellaris系列ARM里,所有I/O都是通用的,称为GPIO(General Purpose Input/Output)。
GPIO模块由3~8个物理GPIO块组成,一块对应一个GPIO端口(PA、PB、PC、PD、PE、PF、PG、PH)。
每个GPIO端口包含8个管脚,如PA端口是PA0~PA7。
GPIO模块遵循FiRM(Foundation IP for Real-Time Microcontrollers)规范,并且支持多达60个可编程输入/输出管脚(具体取决于与GPIO复用的外设的使用情况)。
GPIO模块包含以下特性:z可编程控制GPIO中断屏蔽中断发生边沿触发(上升沿、下降沿、双边沿)电平触发(高电平、低电平)z输入/输出可承受5Vz在读和写操作中通过地址线进行位屏蔽z可编程控制GPIO管脚配置:弱上拉或弱下拉电阻2mA、4mA、8mA驱动,以及带驱动转换速率(Slew Rate)控制的8mA驱动开漏使能数字输入使能1.2 各种模式下的GPIO在Stellaris系列ARM里,GPIO管脚可以被配置为多种工作模式,其中有3种比较常用:高阻输入、推挽输出、开漏输出。
1.高阻输入(Input)图1.1 GPIO高阻输入模式结构示意图如图1.1所示,为GPIO管脚在高阻输入模式下的等效结构示意图。
这是一个管脚的情况,其它管脚的结构也是同样的。
输入模式的结构比较简单,就是一个带有施密特触发输入(Schmitt-triggered input)的三态缓冲器(U1),并具有很高的输入等效阻抗。
施密特触发输入的作用是能将缓慢变化的或者是畸变的输入脉冲信号整形成比较理想的矩形脉冲信号。
执行GPIO管脚读操作时,在读脉冲(Read Pulse)的作用下会把管脚(Pin)的当前电平状态读到内部总线上(Internal Bus)。
在不执行读操作时,外部管脚与内部总线之间是隔离的。
2.推挽输出(Output)图1.2 GPIO推挽输出模式结构示意图如图1.2所示,为GPIO 管脚在推挽输出模式下的等效结构示意图。
U1是输出锁存器,执行GPIO 管脚写操作时,在写脉冲(Write Pulse )的作用下,数据被锁存到Q 和/Q 。
T1和T2构成CMOS 反相器,T1导通或T2导通时都表现出较低的阻抗,但T1和T2不会同时导通或同时关闭,最后形成的是推挽输出。
在Stellaris 系列ARM 里,T1和T2实际上是多组可编程选择的晶体管,驱动能力可配置为2mA 、4mA 、8mA ,以及带转换速率(Slew Rate )控制的8mA 驱动。
在推挽输出模式下,GPIO 还具有回读功能,实现回读功能的是一个简单的三态门U2。
注意:执行回读功能时,读到的是管脚的输出锁存状态,而不是外部管脚Pin 的状态。
3. 开漏输出(OutputOD)图1.3 GPIO 开漏输出结构示意图如图1.3所示,为GPIO 管脚在开漏输出模式下的等效结构示意图。
开漏输出和推挽输出相比结构基本相同,但只有下拉晶体管T1而没有上拉晶体管。
同样,T1实际上也是多组可编程选择的晶体管。
开漏输出的实际作用就是一个开关,输出“1”时断开、输出“0”时连接到GND (有一定内阻)。
回读功能:读到的仍是输出锁存器的状态,而不是外部管脚Pin 的状态。
因此开漏输出模式是不能用来输入的。
开漏输出结构没有内部上拉,因此在实际应用时通常都要外接合适的上拉电阻(通常采用4.7~10k Ω)。
开漏输出能够方便地实现“线与”逻辑功能,即多个开漏的管脚可以直接并在一起(不需要缓冲隔离)使用,并统一外接一个合适的上拉电阻,就自然形成“逻辑与”关系。
开漏输出的另一种用途是能够方便地实现不同逻辑电平之间的转换(如3.3V 到5V 之间),只需外接一个上拉电阻,而不需要额外的转换电路。
典型的应用例子就是基于开漏电气连接的I 2C 总线。
4. 钳位二极管GPIO 内部具有钳位保护二极管,如图1.4所示。
其作用是防止从外部管脚Pin 输入的电压过高或者过低。
VDD 正常供电是3.3V,如果从Pin 输入的信号(假设任何输入信号都有一定的内阻)电压超过VDD 加上二极管D1的导通压降(假定在0.6V 左右),则二极管D1导通,会把多于的电流引到VDD ,而真正输入到内部的信号电压不会超过3.9V 。
同理,如果从Pin 输入的信号电压比GND 还低,则由于二极管D2的作用,会把实际输入内部的信号电压钳制在-0.6V 左右。
图1.4 GPIO钳位二极管示意图假设VDD=3.3V,GPIO设置在开漏模式下,外接10kΩ上拉电阻连接到5V电源,在输出“1”时,我们通过测量发现:GPIO管脚上的电压并不会达到5V,而是在4V上下,这正是内部钳位二极管在起作用。
虽然输出电压达不到满幅的5V,但对于实际的数字逻辑通常3.5V以上就算是高电平了。
图1.5 解决开漏模式上拉电压不足的方法如果确实想进一步提高输出电压,一种简单的做法是先在GPIO管脚上串联一只二极管(如1N4148),然后再接上拉电阻。
参见图1.5,框内是芯片内部电路。
向管脚写“1”时,T1关闭,在Pin处得到的电压是3.3+V D1+V D3=4.5V,电压提升效果明显;向管脚写“0”时,T1导通,在Pin处得到的电压是V D3=0.6V,仍属低电平。
1.3 GPIO库函数及例程1.使能GPIO通常,Stellaris系列ARM所有片内外设只有在运行模式时钟选通控制寄存器RCGCn(这是一组寄存器,n取0、1、2)相应的控制位置位后才可以工作,否则被禁止。
第6章 通用输入输出多路复用器(GPIO)
如功能选择控制、方向、输入量化、数据、置位、
清除和取反等,其位图和I/O引脚的对应关系都是
一 样 的 。 本 节 以 功 能 选 择 控 制 寄 存 器 GPxMUX
( x=A , B, D, E , F, G )为例讲述具体的寄存 器位与I/O引脚的对应关系,如书中表6-4~表6~9所 示。各个表中状态栏内类型R表示可读,W表示可 写,0表示该位复位后的默认值。
安徽工程大学电气工程学院
GPxCLEAR——清除寄存器,是只写寄存器,任何读操作都返回0。如果 相应的引脚配置成数字量输出,写1后相应的引脚将被拉低,写 0时没有影响。 √如果GPxCLEAR.bit=0,没有影响; √ 如果GPxCLEAR.bit=1,且引脚设置为输出,将相应的引脚置成低电平。
本章主要介绍由这些引脚所组成的通用输入 / 输
出多路复用器GPIO的工作原理及相关的寄存器。
安徽工程大学电Biblioteka 工程学院6.1 GPIO概述
F2812的通用输入/输出多路复用器GPIO就是 这些引脚的管理机构,在将这些引脚用作数字通用 I/O口时,它将56个引脚分成6组进行管理,其中 GPIOA和GPIOB各管理16个,GPIOD管理4个, GPIOE管理3个,GPIOF管理15个,GPIOG管理2 个。
I/O的输入功能和外设的输入通道总是被使能的,输出通道是GPIO和外设公用 的。因此,引脚如果配置成为I/O功能,就必须屏蔽相应的外设功能,否则,将会 产生随机的中断信号。
▲ GPxDIR——方向控制寄存器,用来配置I/O的方向(输入/输出)。复位时,所
有GPIO为输入。
√如果GPxDIR.bit= 0,引脚配置为数字量输入; √如果GPxDIR.bit= 1,引脚配置成数字量输出。
GPIO模式详解
GPIO模式详解GPIO是General Purpose Input/Output的缩写,中文意思为通用输入输出引脚。
它是一种通用的硬件接口,可以用于连接外部设备和微控制器或单片机。
GPIO在许多嵌入式系统中都被广泛使用,例如树莓派等。
GPIO功能的实现方式有几种,其中最常见的是通过设置寄存器来控制GPIO的模式和状态。
下面将详细介绍GPIO的几种常见模式。
1. 输入模式(Input Mode):GPIO引脚在输入模式下接收外部信号,可以监测外部信号的状态。
输入模式通常用于外部设备的传感器信号读取。
在输入模式下,可以设置GPIO引脚为上拉输入(Pull-up Input)或下拉输入(Pull-down Input),以防止输入信号漂移。
2. 输出模式(Output Mode):GPIO引脚在输出模式下可以向外部设备发送信号。
输出模式通常用于控制外部设备的电平或状态。
在输出模式下,可以设置GPIO引脚为开漏输出(Open Drain Output)或推挽输出(Push-pull Output),用于适应不同的外部设备。
3. 仿真模式(Analog Mode):GPIO引脚在仿真模式下可以实现模拟信号输入和输出。
在一些特定的应用中,需要使用GPIO引脚来进行模拟信号的输入和输出,例如连接模拟传感器或驱动模拟设备。
4. 复用模式(Alternate Function Mode):GPIO引脚在复用模式下可以实现多种不同的功能,通常用于连接外部设备的特定功能接口。
例如,一些GPIO引脚可以被设置为串行通信接口(如SPI、I2C、UART等)的引脚,以便与外部设备进行通信。
根据不同的芯片和硬件平台,GPIO的模式实现方式有所不同。
有些芯片需要通过设置特定的寄存器来配置GPIO的模式和状态,其他一些芯片则通过使用特定的库函数或驱动程序来操作GPIO。
此外,GPIO的模式还包括一些其他的特性,例如中断功能、输入输出速度控制、上下拉电阻的选择等。
GPIO输入输出各种模式详解
GPIO输入输出各种模式详解GPIO(General Purpose Input/Output)是通用输入输出口,用于连接外部设备和单片机。
在单片机中,GPIO可以配置为输入或输出模式,同时还有三种特殊的模式:推挽模式、开漏模式和准双向端口模式。
下面将从原理、使用场景和配置方法三个方面详细介绍这三种模式。
推挽模式(Push-Pull Mode)是GPIO输出的常见模式,也是默认的输出模式。
当GPIO输出引脚处于高电平状态时,推挽模式会提供高电平输出(通常为Vcc电源电平),而当GPIO输出引脚处于低电平状态时,推挽模式会提供低电平输出(通常接地)。
推挽模式的优势在于输出电流大,能够提供较强的驱动能力,适用于直接驱动大功率负载的场景。
例如,通过GPIO控制LED灯等外设时,推挽模式可以稳定提供给LED所需的驱动电流,保证LED的正常工作。
开漏模式(Open-Drain Mode)是GPIO输出的另一种模式。
当GPIO输出引脚处于高电平状态时,开漏模式会将输出引脚拉到高阻态,而当GPIO输出引脚处于低电平状态时,开漏模式会将输出引脚拉到地。
开漏模式需要通过一个外接上拉电阻将输出引脚连接到Vcc电源电平上。
开漏模式的优势在于输出可以与其他器件共享同一个总线,通过总线上的上拉电阻或其他器件的驱动电源提供高电平。
开漏模式适用于多个GPIO输出的引脚需要共享一个总线的场景,例如,使用I2C总线协议时,多个GPIO引脚可以共享SDA(数据线)和SCL(时钟线)。
准双向端口(Quasi-Bidirectional Port)是GPIO输入输出的特殊模式,常见于外设总线接口中。
准双向端口可以既作为输入又作为输出,且在不同的时间片段进行输入输出操作。
准双向端口的原理是通过一个三态门和一个外接上拉电阻实现的。
当GPIO处于输出模式时,三态门使得GPIO输出到外设;而当GPIO处于输入模式时,三态门处于高阻态,外设可以将信号输入到GPIO中。
第五章 通用输入输出端口(GPIO)
GPIO的寄存器
数据寄存器: • 取反寄存器GPxTOGGLE ,反转触发每个引
脚信号; 每个IO口有一个翻转寄存器,只能写不能读, 也就是只能用在输出上,写1可以使输出翻转, 写0没有变化。 GPxTOGGLE .bit.=0,被忽略; GPxTOGGLE.bit.=1,且引脚配置为输出,则 输出翻转。
#endif
#if EXAMPLE2 //该例程使用GPxSET/GPxCLEAR寄存器反转触发I/O引脚
Gpio_example2();
#endif
#if EXAMPLE3
//该例程使用GPxTOGGLE寄存器反转触发I/O引脚
Gpio_example3();
#endif
}
本章重点小结
‘28X系列DSP的通用数字输入输出GPIO端口是复用 功能引脚,通过GPxMUX、GPxDIR、GPxQUAL等复 用功能控制寄存器以及GPxDAT、GPxSET、 GPxCLEAR和GPxTOGGLE等GPIO数据寄存器对引脚 的功能和操作进行控制;
EDIS;
}
主程序
void main(void)
{
InitSysCtrl(); //系统初始化:PLL、WatchDog、使能外设时钟
Gpio_select();
//GPIO设置
DINT;
//清除所有中断,初始化PIE向量表,关闭CPU中断
InitPieCtrl(); //将PIE控制寄存器初始化为默认值,即所有PIE中断被关闭,
GPFDIR
0x0000 70D5 1
GPGMUX
000 70D8 1
GPGDIR
0x0000 70D9 1
寄存器说明 GPIOA功能选择控制寄存器 GPIOA方向控制寄存器 GPIOA输入限定控制寄存器 GPIOB功能选择控制寄存器 GPIOB方向控制寄存器 GPIOB输入限定控制寄存器 GPIOD功能选择控制寄存器 GPIOD方向控制寄存器 GPIOD输入限定控制寄存器 GPIOE功能选择控制寄存器 GPIOE方向控制寄存器 GPIOE输入限定控制寄存器 GPIOF功能选择控制寄存器 GPIOF方向控制寄存器 GPIOG功能选择控制寄存器 GPIOG方向控制寄存器
GPIO模式详解
GPIO模式详解GPIO(General-Purpose Input/Output)即通用输入输出口,是一种通用的数字输入输出接口。
在嵌入式系统中,GPIO被广泛应用于控制外围设备和传感器,如LED灯、按钮、蜂鸣器等。
GPIO具有灵活性强、适用范围广的特点,可以通过软件对其进行编程配置,从而实现各种功能。
GPIO的模式主要分为输入模式和输出模式两种。
1.输入模式:在输入模式下,GPIO被配置为接收外部信号的输入。
GPIO的输入信号可以是高电平(1)或低电平(0),也可以是无效信号(high impedance)。
在输入模式下,GPIO可以检测外部信号的变化,并将其转换为数字信号供处理器使用。
输入模式常见的应用场景:-按钮输入:将按钮连接到GPIO引脚,通过检测按钮的按下和释放事件来触发相应操作。
-传感器输入:将各种传感器连接到GPIO引脚,通过读取传感器的输出信号来获取环境信息。
-外部设备状态检测:连接到外部设备的引脚,通过读取外部设备的状态信号来判断设备是否工作正常。
2.输出模式:在输出模式下,GPIO被配置为向外部设备输出信号。
GPIO的输出信号可以是高电平(1)或低电平(0),也可以是高阻抗状态(高阻抗状态即断开与外部设备的连接)。
输出模式下,GPIO通过改变电平来控制外部设备的状态。
输出模式常见的应用场景:-LED控制:将LED连接到GPIO引脚,通过控制GPIO的电平来打开或关闭LED。
-舵机控制:将舵机连接到GPIO引脚,通过控制GPIO的电平来控制舵机的转动方向和角度。
-蜂鸣器控制:将蜂鸣器连接到GPIO引脚,通过控制GPIO的电平来触发蜂鸣器的鸣叫。
GPIO的模式配置需要通过软件编程实现,不同的平台和操作系统有不同的配置方法。
1.引脚选择:选择要配置的GPIO引脚,通常通过引脚编号或名称进行选择。
2.模式选择:选择要配置的模式,即输入模式还是输出模式。
3.状态设置:根据选择的模式,设置相应的状态,如输入模式下的上拉/下拉,输出模式下的高电平/低电平。
GPIO(输入输出端口)
GPIOGPIO,通用I/O端口。
在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。
对设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。
一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。
数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。
扩展资料GPIO的优点(端口扩展器)•低功耗:GPIO具有更低的功率损耗(大约1µA,µC的工作电流则为100µA)。
•集成I²C从机接口:GPIO内置I²C从机接口,即使在待机模式下也能够全速工作。
•小封装:GPIO器件提供最小的封装尺寸—3mm x 3mm QFN!•低成本:您不用为没有使用的功能买单!•快速上市:不需要编写额外的代码、文档,不需要任何维护工作!•灵活的灯光控制:内置多路高分辨率的PWM输出。
•可预先确定响应时间:缩短或确定外部事件与中断之间的响应时间。
•更好的灯光效果:匹配的电流输出确保均匀的显示亮度。
•布线简单:仅需使用2条I²C总线或3条SPI总线。
S3C2410共有117个I/O端口,共分为A~H共8组:GPA、GPB、...、GPH。
S3C2440共有130个I/O端口,分为A~J共9组:GPA、GPB、...、GPJ。
可以通过设置寄存器来确定某个引脚用于输入、输出还是其他特殊功能。
比如:可以设置GPH6作为输入、输出、或者用于串口。
gpio_desc和gpio编号
主题:GPIO(通用输入输出)描述及GPIO编号一、 GPIO概述GPIO(General Purpose Input/Output)通用输入输出是一种通用的数字输入/输出接口,用于处理数字信号。
它可以通过设置输入/输出模式来连接外部电路,实现与外部设备的通信。
二、 GPIO描述1. GPIO的特点GPIO具有以下特点:(1)灵活性强:可以适应多种输入/输出模式,包括上升沿触发、下降沿触发、高电平触发、低电平触发等。
(2)通用性强:可以连接各种外部设备,如LED、按钮、传感器等。
(3)易于控制:可以通过软件编程来控制GPIO的输入和输出状态。
2. GPIO的应用GPIO广泛应用于嵌入式系统、单片机、树莓派等领域,用于实现各种外设的控制和通信。
三、 GPIO编号1. GPIO编号概述GPIO编号是指每个GPIO接口在硬件上的标识,用于区分不同的GPIO接口。
2. GPIO编号分类GPIO编号通常分为两类:(1)物理编号:即GPIO接口在硬件电路板上的实际位置编号,通常用于连接外部电路。
(2)逻辑编号:即GPIO接口在软件编程中的逻辑编号,通常由操作系统分配。
3. GPIO编号的规则GPIO编号通常遵循一定的规则,如树莓派上的GPIO编号通常采用BCM(Broa)编号规则。
四、 GPIO接口的描述和GPIO编号对应关系1. GPIO接口描述以下为某嵌入式开发板上的部分GPIO接口描述:(1)GPIO0:连接外部LED灯(2)GPIO1:连接外部按钮开关(3)GPIO2:连接温湿度传感器2. GPIO编号对应关系以下为某嵌入式开发板上的部分GPIO编号对应关系:(1)GPIO0:物理编号为12,逻辑编号为2(2)GPIO1:物理编号为16,逻辑编号为3(3)GPIO2:物理编号为18,逻辑编号为4根据以上GPIO描述和GPIO编号,我们可以清晰地了解GPIO的特点、应用和编号规则,以及GPIO接口的具体描述和编号对应关系。
gpio的规格
gpio的规格
通用输入输出(GPIO,General Purpose Input/Output)是一种数字信号的通用引脚,可以在计算机和嵌入式系统中用于输入和输出数字信号。
不同的硬件平台和芯片厂商可能有不同的GPIO规格,但以下是一些通用的GPIO规格和特性:
1.电压电平:GPIO引脚通常支持不同的电压电平,如3.3V、5V等。
使用时需要根据具体硬件要求选择合适的电压电平。
2.输入阻抗:GPIO的输入阻抗通常在几千到几百千欧姆之间,这取决于具体的硬件设计。
输入阻抗决定了引脚对外部信号的敏感度。
3.输出驱动能力:GPIO的输出驱动能力表示其能够驱动外部负载的能力,通常以毫安(mA)为单位。
较高的输出驱动能力允许连接更大的负载。
4.最大频率:GPIO引脚支持的最大切换频率,即输入和输出信号的变化速度。
这一点在需要快速信号传输时很重要。
5.可配置性:GPIO引脚通常是可配置的,可以通过软件设置为输入或输出,并可能具有其他特殊功能,如中断、上拉/下拉电阻等。
6.标准:一些GPIO规格符合特定的标准,例如CMOS(互补金属氧化物半导体)、TTL (晶体管—晶体管逻辑)等。
这些标准通常影响了电平定义和电气特性。
7.工作温度范围:GPIO的工作温度范围是指它能够可靠工作的温度范围。
需要注意的是,具体的GPIO规格可能因芯片型号、制造商和应用场景而异。
因此,在使用GPIO时,应参考相关芯片手册、数据表或硬件规格说明来获取具体的规格信息。
通用输入输出端口GPIO
PortG (16)
PortH (16) PortI (12) 总共引脚数目 48+1+2=51 80+2=82 112+2=114 128+12=140 PH0/1(OSC) PH0/1(OSC) PH0/1(OSC)
GPIO占芯片所有引脚的80% 左右
4
GPIO结构框图
数字外设
数字外设和 EVENTOUT
特殊I/O引脚说明 STM32F1和STM32F2的GPIO比较
2
培训内容
GPIO引脚分布和结构框图 I/O引脚的多路复用选择和映射 I/O引脚的8种配置模式
输入:浮空、上/下拉、模拟输入 输出:可配置上/下拉的推挽输出、开漏输出
I/O引脚的特色功能
引脚配置锁定 引脚上的位操作 I/O补偿单元
必须32位读写
19
GPIO位操作(1)
STM32Fቤተ መጻሕፍቲ ባይዱ位操作,两个寄存器,只支持字操作
GPIOx_BSRR[32] = Bri | Bsi (i=0~15) GPIOx_BRR[32] = Bri (i=0~15) e.g. 同时同向toggle PA.0和PA.1
>> GPIOA_BSRR = 0x03 >> GPIOA_BRR = 0x03 >> GPIOA_BSRR = 0x21 >> GPIOA_BSRR = 0x12
②
③ ① 输出驱动关闭 ② Schmit触发输入关闭 ③上/下拉电阻被禁止
①
Schmitt触发器关闭
该引脚功耗为0 触发器输出强制为常数0
读取输入数据寄存器始终得到”0” 模拟功能配置下,I/O引脚不是5V容忍
第五章 通用输入输出端口(GPIO)
0x0000 70C1 1
GPAQUAL 0x0000 70C2 1
GPBMUX
0x0000 70C4 1
GPBDIR
0x0000 70C5 1
GPBQUAL 0x0000 70C6 1
GPDMUX
0x0000 70CC 1
GPDDIR
0x0000 70CD 1
GPDQUAL 0x0000 70CE 1
while(1) {
GpioDataRegs.GPASET.all =0xAAAA; GpioDataRegs.GPACLEAR.all =0x5555; delay_loop(); GpioDataRegs.GPACLEAR.all =0xAAAA; GpioDataRegs.GPASET.all =0x5555;
while(1)
{ GpioDataRegs.GPADAT.all =0xAAAA; delay_loop();
GpioDataRegs.GPADAT.all delay_loop(); } }
=0x5555;
使用SET/CLEAR寄存器反转触发I/O引脚
void Gpio_example2(void) {
端口设置
void Gpio_select(void)
{
Uint16 var1;
Uint16 var2;
Uint16 var3;
var1= 0x0000;
// sets GPIO Muxs as I/Os
var2= 0xFFFF;
// sets GPIO DIR as outputs
var3= 0x0000;
//所有中断,标志清零。
IER = 0x0000; //关闭CPU中断,清除所有CPU中断标志;
