嵌入式系统:第五章 通用输入输出(GPIO)

上传人:s9****2 文档编号:569831126 上传时间:2024-07-31 格式:PPT 页数:31 大小:7.28MB
返回 下载 相关 举报
嵌入式系统:第五章 通用输入输出(GPIO)_第1页
第1页 / 共31页
嵌入式系统:第五章 通用输入输出(GPIO)_第2页
第2页 / 共31页
嵌入式系统:第五章 通用输入输出(GPIO)_第3页
第3页 / 共31页
嵌入式系统:第五章 通用输入输出(GPIO)_第4页
第4页 / 共31页
嵌入式系统:第五章 通用输入输出(GPIO)_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《嵌入式系统:第五章 通用输入输出(GPIO)》由会员分享,可在线阅读,更多相关《嵌入式系统:第五章 通用输入输出(GPIO)(31页珍藏版)》请在金锄头文库上搜索。

1、第五章通用输入输出(GPIO) LPC1700系列Cortex-M3微控制器目录 GPIO简介1 GPIO特性描述2GPIO输入输出3GPIO中断4GPIO简介|数字量输入/输出GPIO GPIO是通用型输入/输出(General Purpose I/O)的简称,主要用于工业现场需要用到数字量输入/输出的场合,例如:继电器、 LED、蜂鸣器等的控制;传感器状态、高低电平等信息的输入等。目录 GPIO简介1 GPIO特性描述2GPIO输入输出3GPIO中断4GPIO特性描述|I/O结构大部分GPIO为推挽输出,具有完整I2C功能的是开漏结构;管脚可承受最大5V的输入电压。正常拉出灌入电流为4mA

2、,短 时间极限值40mA;GPIO特性描述|通用输入输出所有GPIO寄存器位于AHB总线上,可以进行高性能的 CPU快速访问,支持Cortex-M3位带操作;GPIO允许进行DMA数据操作。可配置为上拉/下拉电阻、开漏和中继模式;LPC1700系列Cortex-M3有5组GPIO,多达70个通用I/O管脚(100管脚封装);GPIO特性描述|中断 LPC1700P0.xP2.x LPC1700系列Cortex-M3的P0和P2还具有中断功能,P0和P2每个引脚都可配置为上升沿、下降沿或边沿中断。上升沿中断下降沿中断 边沿中断 GPIO中断还具有掉电唤醒功能目录 GPIO简介1 GPIO特性描述

3、2GPIO输入输出3GPIO中断4GPIO输入输出|I/O相关寄存器 LPC1700系列Cortex-M3具有5个端口,所以具有5组控制寄存器。一个GPIO引脚在某一时刻,只受4个位的控制,这4个位分布在该GPIO所属端口的4个控制寄存器中。GPIO端口方向寄存器FIOxDIRFIOxDIRBit31Bit30 Bit1Bit0GPIO输出置位寄存器FIOxSETFIOxSETBit31Bit30 Bit1Bit0GPIO输出清零寄存器FIOxCLRFIOxCLRBit31Bit30 Bit1Bit0GPIO管脚值寄存器FIOxPINFIOxPINBit31Bit30 Bit1Bit0控制的引

4、脚Px.nPx.nPx.31Px.30 Px.1Px.0GPIO输入输出|I/O相关寄存器GPIO端口方向寄存器FIOxDIRFIOxDIRBit31Bit30 Bit1Bit0GPIO输出置位寄存器FIOxSETFIOxSETBit31Bit30 Bit1Bit0GPIO输出清零寄存器FIOxCLRFIOxCLRBit31Bit30 Bit1Bit0GPIO管脚值寄存器FIOxPINFIOxPINBit31Bit30 Bit1Bit0 LPC1700系列Cortex-M3的高速GPIO口还可通过一些字节和半字访问的寄存器来控制,如FIOxDIR0/1/2/3、FIOxSET0/1/2/3、F

5、IOxCLRL/U等。控制的引脚Px.nPx.nPx.31Px.30 Px.1Px.0PINSELxFIOxDIRFIOxCLRFIOxPINFIOxSETinout10PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10通用名称描述访问类型复位值FIOXPINGPIO引脚值寄存器,不管方向模式如何,引脚的当前状态都可以从该寄存器中读出只读NAFIOXSETGPIO输出置位寄存器。该寄存器控制引脚输出高电平读/置位0x00000000FIOXCLRGPIO输出置位寄存器。该寄存器控制引脚输出低电平只清零0x00000000FIOXDIRGPIO方向控制寄存器。该寄存器单

6、独控制每个IO口的方向读/写0x00000000GPIO相关寄存器描述PINSELxFIOxDIRFIOxCLRFIOxPINFIOxSETinout10GPIO相关寄存器描述FIOxPINFIOxPIN描述复位值31 : 0GPIO引脚值。FIOxPIN0对应于Px.0 FIOxPIN31对应于Px.31引脚未定义 该寄存器反映了当前引脚的状态。FIOxPIN中的x对应于某一个端口,如P1口对应于FIO1PIN。所以芯片存在多少个端口,就有多少个IOxPIN分别与之对应。 写该寄存器会将值保存到输出寄存器,具体使用稍后介绍。注意:无论引脚被设置为输入还是输出模式,都不影响引脚状态的读出。PI

7、NSELxFIOxDIRFIOxCLRFIOxPINFIOxSETinout10GPIO相关寄存器描述FIOxDIRFIOxDIR描述复位值31 : 0方向控制位。FIOxDIR0对应于Px.0 FIOxDIR31对应于Px.31引脚0 当引脚设置为GPIO输出模式时,可使用该寄存器控制引脚的方向。向某位写入1使对应引脚作为输出功能,写入0时作为输入功能。 作为输入功能时,引脚处于高阻态。PINSELxFIOxDIRFIOxCLRFIOxPINFIOxSETinout10GPIO相关寄存器描述FIOxSETFIOxSET描述复位值31 : 0输出置位。FIOxSET0对应于Px.0 FIOxP

8、IN31对应于Px.31引脚0 当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出高电平。向某位写入1使对应引脚输出高电平。写入0无效。 从该寄存器读回的数据为GPIO输出寄存器的值。该值不反映外部环境对引脚的影响。PINSELxFIOxDIRFIOxCLRFIOxPINFIOxSETinout10GPIO相关寄存器描述FIOxCLRFIOxCLR描述复位值31 : 0输出清零。FIOxCLR0对应于Px.0 F IOxCLR31对应于Px.31引脚0 当引脚设置为GPIO输出模式时,可使用该寄存器从引脚输出低电平。向某位写入1使对应引脚输出低电平。写入0无效。注意:读取该寄存器无效,不

9、能读回输出寄存器的值。GPIO输入输出|I/O功能框图INOUT10GPIOPINSELxPINMODExvccFIOxDIR10FIOxSETFIOxCLRFIOxPINFIOxMASK输出置位寄存器模式选择寄存器功能选择寄存器端口屏蔽寄存器输出清零寄存器端口方向控制寄存器管脚值寄存器复位后默认所有GPIO为上拉输入模式GPIO输入输出|I/O屏蔽寄存器 采用屏蔽寄存器FIOxMASK来屏蔽某些位,可以让软件在一个写操作过程中设置GPIO相应的位而又不影响到其他的管脚。FIOxSETFIOxSET11 10011FIOxMASKFIOxMASK10 11001引脚电平u1 uuu1uu=电平

10、不变GPIO输入输出|I/O操作流程FIOxPIN10FIOxCLRFIOxSETINOUT10FIOxDIRPINMODExvccGPIOPINSELx 设置引脚为GPIO功能 1 配置引脚模式 2 设置GPIO的方向 3 设置GPIO输出电平 4 GPIO输入 GPIO输出1高电平高电平1输出操作流程输出操作流程输入操作流程输入操作流程1 读取GPIO引脚电平 4 使用GPIO注意要点引脚设置为输出方式时,输出状态由FIOxSET和FIOxCLR中最后操作的寄存器决定;大部分GPIO输出为推挽方式(个别引脚为开漏输出),正常拉出/灌入电流均为4mA(短时间极限值40mA);复位后默认所有G

11、PIO为输入模式。 . LPC_PINCON-PINSEL0&= 0xFFFFFFFC; LPC_GPIO0-FIODIR |= 0x00000001; LPC_GPIO0-FIOSET = 0x00000001; .C代码:PINSEL0FIO0DIRFIO0CLRFIO0PINFIO0SETinout10GPIO应用示例设置P0.0输出高电平P0.0(1) 设置引脚连接模块,P0.0为GPIO(2) 设置P0.0口方向,设置为输出(3) 设置P0.0口状态,输出高电平1 . uint32 PinStat; LPC_PINCON-PINSEL0 &= 0xFFFFFFFC; LPC_GPIO

12、0- FIODIR &= 0xFFFFFFFE; PinStat = LPC_GPIO0- FIOPIN; .C代码:PINSEL0FIO0DIRFIO0CLRIO0PINFIO0SETinout10GPIO应用示例读取P0.0引脚状态P0.0(1) 设置引脚连接模块,P0.0为GPIO(2) 设置P0.0口方向,设置为输入(3) 从FIO0PIN读取引脚状态FIO0PIN#define DataBus 0xFF PINSEL0 &= 0xFFFF0000; FIO0DIR |= DataBus; FIO0CLR = DataBus; FIO0SET = Data; .使用FIOxSET和FI

13、OxCLR实现:GPIO应用示例输出多位数据至IO口(1) 设置引脚连接模块,P0.07为GPIO(2) 设置P0.0口方向,设置为输出(3) 清零8位IO口的输出状态 在需要将多位数据同时输出到某几个IO口线时,通常使用FIOxSET和FIOxCLR来实现,在某些情况下也可以使用FIOxPIN寄存器实现。后者可以在多个IO口上直接输出0和1电平。 本例将8位无符号整形变量Data的值输出到P0.0P0.7。(4) Data变量中为1的位将输出高电平0x?0x00Data数据输出线:#define DataBus 0xFF PINSEL0 &= 0xFFFF0000; FIO0DIR |= D

14、ataBus; FIO0PIN = (FIO0SET & 0xFFFFFF00) | Data; .GPIO应用示例输出多位数据至IO口(1) 设置引脚连接模块,P0.0为GPIO(2) 设置P0.0口方向,设置为输出(3) 写FIO0PIN,输出数据 在需要将多位数据同时输出到某几个IO口线时,通常使用IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存器实现。后者可以在多个IO口上直接输出0和1电平。 本例将8位无符号整数变量Data的值输出到P0.0P0.7。使用IOxPIN实现:0x?Data数据输出线:0x?0x00Data与前者对比:目录 GPIO简介1 GPI

15、O特性描述2GPIO输入输出3GPIO中断4GPIO中断|中断相关寄存器 控制寄存器状态寄存器 端口P0和P2引脚还具有中断功能。GPIO管脚的中断寄存器可分为两组:控制寄存器和状态寄存器。 没有电平中断上升沿中断使能寄存器IO0/2IntEnR上升沿中断状态寄存器IO0/2IntStatR下降沿中断使能寄存器 IO0/2IntEnF下降沿中断状态寄存器IO0/2IntStatF中断标志清零寄存器IO0/2IntClr整体中断状态寄存器IOIntStatusGPIO中断|中断功能框图上升沿中断状态寄存器IO0/2IntStatF P0/P2+下降沿中断上升沿中断IO0/2IntStatRIOI

16、ntStatusIO0/2IntEnRIO0/2IntEnFIO0/2IntClr上升沿中断使能寄存器下降沿中断使能寄存器中断标志清零寄存器下降沿中断状态寄存器整体中断状态寄存器GPIO中断|中断操作流程IO0/2IntEnFIO0/2IntEnRP0/P2+IO0/2IntClrIOIntStatusIO0/2IntStatFIO0/2IntStatR 设置中断触发模式 1 等待中断IOIntStatusIO0/2IntStatFIO0/2IntStatR 清除中断标志 2 设置下降沿中断使能下降沿中断上升沿中断GPIO中断|中断操作流程操作示例设置P0.0下降沿中断PINSEL0 &= 0

17、xFFFFFFFC;IO0IntEnF |= 0x01;NVIC_EnableIRQ(EINT3_IRQn);void EINT3_IRQHandler (void) if(IO0IntStatF & 0x01) != 0) IO0IntClr = 0x01; . 设置引脚连接模块设置下降沿中断判断是否为P0.0下降沿中断清除中断标志用户其它代码使能GPIO中断补充: 引脚连接模块概述 LPC1700系列微控制器的大部分管脚都具有多种功能,即管脚复用,但是同一引脚在同一时刻只能使用其中一个功能,通过配置相关寄存器控制多路开关来连接引脚与片内外设。引脚P0.0GPIORD1TXD3SDA1PIN

18、SELx引脚连接寄存器PINSELx1 : 000011011P0.0默认为GPIO功能P0.0选择RD1功能,配置对应位为01P0.0选择TXD3功能,配置对应位为10P0.0选择SDA1功能,配置对应位为11 引脚连接模块 LPC1700系列微控制器具11个32位宽度PINSEL寄存器,其中PINSEL0和PINSEL1控制端口0,其他的依次类推,具体控制信息可以参考芯片的用户手册。寄存器描述寄存器LPC1700PINSEL0P00:15PINSEL1P016:31PINSEL2P10:15PINSEL3P116:31 引脚连接模块应用示例PINSEL4 = 0x05 22; 要求将P2.11、P2.12设置为EINT1、EINT2 通过查阅PINSE0寄存器设置表,得到P2.11和P2.12的控制位为PINSEL425:22,当该域设置为0101 (0x05)时选择 EINT1和 EINT2。 为了不影响别的管脚连接设置,通常选择下面的设置方法。PINSEL4 = (PINSEL4 & 0xFC3FFFFF) | (0x05 22);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号