第5章 通用输入输出接口.ppt_第1页
第5章 通用输入输出接口.ppt_第2页
第5章 通用输入输出接口.ppt_第3页
第5章 通用输入输出接口.ppt_第4页
第5章 通用输入输出接口.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章通用投入产出(GPIO )、型号计程仪、GPIO特性|数字量投入产出GPIO、GPIO是通用型投入产出(General Purpose I/O )的简称,主要在工业现场需要数字量投入产出的情况下,例如用于继电器、LED、蜂鸣器等的控制的传感器、片假名计程仪、GPIO特性描述|I/O结构,大部分GPIO为推挽输出,具有完全I2C功能的为开放式泄漏结构,大头针最大可承受5V的输入电压。 正常引出的注入电流为4mA,短时间界限值为40mA,GPIO特性描述|通用投入产出,所有GPIO暂存器均位于AHB男低音上,可实现高性能的电脑CPU高速网站数据库,支持Cortex-M3二进制位乐队操作,GP

2、IO允许DMA数据操作。 可构成为引体向上/下拉电阻、开路泄漏、中继模式,LPC1700系列Cortex-M3有5组GPIO,最大7.0个通用I/O大头针(100大头针封装),GPIO特性描述|中断、 LPC1700系列Cortex-M3的P0和P2具有中断功能,P0和P2的各大头针可构成为在上升沿、下降沿或双边沿中断。 GPIO中断包括供电中断唤醒功能、片形计程仪、GPIO投入产出|I/O相关暂存器、LPC1700系列Cortex-M3有5个通讯端口,因此有5组控制暂存器。 一个GPIO终端在某个时刻仅受到分布在该GPIO所属的通讯端口的4个控制暂存器中的4个二进制位的控制。 GPIO投入产

3、出|I/O相关暂存器、LPC1700系列Cortex-M3的高速GPIO通讯端口可通过FIOxDIR0/1/2/3、FIOxSET0/1/2/3、FIOxCLRL/U等与多个字节半字网站数据库的暂存器进行控制GPIO相关暂存器描述,PINSELx,FIOxDIR,fixvipin,FIOxSET,in,out,1,0,GPIO相关暂存器描述fixvipin,该暂存器反映了当前的大头针状态。 FIOxPIN的x支持其中P1通讯端口支持FIO1PIN的通讯端口。 芯片上有多少个通讯端口,IOxPIN的数量是各自对应的。 写出这个暂存器后,输出暂存器中会保存值,具体后述。 注意:无论大头针是设定为输

4、入模式、输出模式,还是设定为其他可选的数字功能,都不会影响大头针状态的读取。 PINSELx,fixdir,FIOxCLR,fixvipin,FIOxSET,in,out,1,0,GPIO相关关暂存器字记述了fixdir,端子被设定为GPIO输出模式的情况下,使用该暂存器向某人写入1时对应的大头针成为输出功能,写入0时成为输入功能。 输入功能时,端子处于高电阻状态。 PINSELx,FIOxDIR,FIOxCLR,fixvipin,fixset,in,out,1,0,GPIO相关关暂存器字记述了fixset,端子被设定为GPIO输出模式时,使用该暂存器向某人写入1时,对应的端子输出为高电平。

5、写入0无效。 从该暂存器读取的数据是GPIO输出暂存器的值。 此值不反映外部环境对领先的影响。 PINSELx,FIOxDIR,fixcolr,fixvipin,FIOxSET,in,out,1,0,GPIO相关关暂存器字记述了fixcor,端子被设定为GPIO输出模式的情况下,使用该暂存器向某人写入1时,对应的端子输出为低电平。 写入0无效。 注意:此暂存器的读取无效,无法读取输出暂存器的值。 GPIO投入产出|I/O功能分块图,IN,OUT,1,0,GPIO,PINSELx,FIOxDIR,FIOxSET,FIOxCLR,FIOxPIN,FIOxMASK,输出定径套暂存器,模式选择暂存器,

6、功能选择暂存器, 在通讯端口苏克雷寄存器、输出清除暂存器通讯端口方向控制暂存器、大头针值暂存器、再定径套后,所有的GPIO采用上拉输入模式、GPIO输入输出|I/O屏蔽寄存器、屏蔽寄存器FIOxMASK,屏蔽某个位,软件就可以在某个写入操作中进行GPIOu=等级不变,GPIO投入产出定|I/O操作定流,FIOxPIN,GPIO输入,GPIO输出,1, 如果使用输出操作流、输入操作流、1、GPIO注意点将大头针设置为输出方式,则输出状态由FIOxSET和FIOxCLR中最后操作的暂存器决定大部分GPIO输出都是云推送抽取方式(个别大头针为开放泄漏输出),正常的抽取/起动电流LPC_PINCON-

7、PINSEL0.c查询密码:PINSEL0,FIO0DIR,FIO0PIN,FIO0SET,in,out,1,0,GPIO应用例P0.0输出高电平,P0.0,uint 3.2 LPC_PINCON-PINSEL0.c查询密码:PINSEL0,FIO0DIR,FIO0PIN,FIO0SET,in,out,1,0,GPIO应用例为P0.0大头针定状态,P0.0,FIO0PIN, 使用#define DataBus 0 xFF PINSEL0.fixset和fixcor实现:在GPIO应用程序的示例中,如果需要将多个堆二进制位的数据输出到IO通讯端口,并将多个二进制位的数据输出到一些IO通讯端口线以

8、供云同步,则通常使用fixset 后者可直接在多个IO通讯端口中输出0和1个电平。 此示例将8二进制位的无符号整形变量Data的值输出为P0.0P0.7。数据输出线:#define DataBus 0 xFF PINSEL0.GPIO应用例需要将多二进制位的数据输出到IO通讯端口、将多二进制位的数据输出到多个IO通讯端口线进行云同步的情况下,通常使用IOxSET和IOxCLR来实现,有时也使用IOxSET和IOxCLR来实现后者可直接在多个IO通讯端口中输出0和1个电平。 此示例将8二进制位无符号整数变量Data的值输出到P0.0P0.7。FIOxPIN实现:数据输出线:GPIO应用采样控制L

9、ED,int main (语音) unsigned long I; LPC_GPIO2-FIODIR=0 x0000000F; p2.0-将p2. 3方向设为输出LPC _ gpio2- fioset=0x 000000 f/将输出高电平初始化,将灯while (1) LPC _ gpio2- fi clr=0x 000000 f设为off/输出低电平,显示灯for i 0; i- ); LPC_GPIO2-FIOSET=0 x0000000F; /输出高电平,关闭指示灯for (I=1000000; i 0; i- ); GPIO应用程序中的样本特罗尔定按钮,int main (语音)无符号

10、长整I; 将P2.0-P2.3方向作为输出,将P2.11、P2.12方向的输入LPC_GPIO2-FIODIR=0 x0000000F; /将输出高电平初始化,关闭斜坡LPC_GPIO2-FIOSET=0 x0000000F的while(1) /判定按钮1 P2.11是否被按下和处理堆计程仪if(lpc_GPIO2-fipin ) )、GPIO应用/切换LED1的状态/原来的输出为高电平时为低电平if(lpc_gpio2-fipin ),gpio应用程序示例状态机控制按钮, )一般的牛鼻子输入软件界面计程仪程序非常简单,在程序中检测到牛鼻子输入口是低电平(根据情况是高电平),就以软件延迟的方法

11、消除抖动,再次检测牛鼻子输入,如果再次确认是低电平,就指示有牛鼻子按下,并进行牛鼻子处理如果延迟后检测到的电平为高电平,则放弃此次的牛鼻子检测,重新开始牛鼻子检测过程。 对于简单的系统可以使用该方法,但是对于复杂的系统要求高实时性的系统,该方法的电脑CPU利用率低,导致资源浪费。 此外,由于产品系统不同,牛鼻子功能的定义和使用方式也不同,测试和牛鼻子处理和云同步,以及MCU也云同步处理其他塔斯克(查看、计算、时间节点等),所以制作牛鼻子板和键接口的处理过程需要掌握有效的分析方法,软件很高采用状态机的方法是比较好的方法。 GPIO应用状态机控制按钮可将一个按钮抽象为三个状态: (1)假设被按下,

12、S0(2)按钮,并且S1(3)按钮被按下,以及S2。 在一个系统中,牛鼻子的操作是随机的,因此系统软件对牛鼻子进行循环查询。因为在检测牛鼻子行程的过程中需要抖动处理,并且抖动延迟处理一般是10ms或2.0 ms,所以状态机的时间序列是10ms或2.0 ms,不仅可以跳过牛鼻子行程的抖动的影响,而且还远远超过牛鼻子行程的0.3-0.5S的稳定闭合时间假定GPIO应用状态机控制按钮在按下按钮时的通讯端口等级是0,而在未按下按钮时是1 (或者反之亦然)。 状态机检测牛鼻子的过程首先,在牛鼻子的初始状态为S0,检测到输入为1的情况下,表示没有按下牛鼻子,保持S0。 牛鼻子输入为0时,有牛鼻子按下,状态

13、S1 :转移到牛鼻子确认状态。 当在S1状态下,如果输入信号是1,则表示刚才的牛鼻子操作是干扰,此外,当转换到S0的输入信号是0时,表示牛鼻子按下是正确的。因此,可以读取牛鼻子状态,生成牛鼻子标志,或者将上通告存储在消息队列中。 在云同步中状态机切换到S2状态:释放牛鼻子的状态。 当在S2的状态下输入信号指示在高电平解除了牛鼻子时,切换至S0,否则维持S2的状态。 定义GPIO应用状态机控制按钮,/读取按钮状态的宏命令,将按钮返回到0,不按下1 # define key _ input (LPC _ GPIO2- FIP in )/读取按钮I/O电平,gpio应用状态机控制按钮,swii br

14、eak,通过按下“key_press) /“牛鼻子”,状态可变成牛鼻子定确认状态key_state=key_state_1; GPIO应用例状态机控制按钮、casekey_state_1: /按钮确认状态if (! 在按下key_press) /牛鼻子的同时,状态转变为牛鼻子定释放状态key_state=key_state_2的else /按钮被抬起,转变为按钮的初始状态key_state=key_state_0的break; 另外,由于GPIO应用状态机控制按钮、case key_state_2: /按钮释放状态if (key_press) /按钮已释放、按钮初始状态key_state=ke

15、y_state_0转移/按钮被按下并被释放,所以按钮的输出被释放。 default :中断返回: GPIO应用实例状态机控制按钮,如何实现按钮的长按和短按? GPIO应用状态机控制按钮可将按钮抽象为四个状态: (1)被按下、S0(2)按钮被按下、S1(3)按钮被稳定按下、以及S2(4)按钮被释放,或者假定S3。 假定GPIO应用状态机控制按钮在按下按钮时的通讯端口等级是0,而在未按下按钮时是1 (或者反之亦然)。 状态机检测牛鼻子的过程首先,在牛鼻子的初始状态为S0,检测到输入为1的情况下,表示没有按下牛鼻子,保持S0。 在牛鼻子输入为0的情况下,有牛鼻子按下,转移至状态S1。 当在S1状态下

16、,如果输入信号是1,则表示刚才的牛鼻子操作是干扰,此外,当转换到S0的输入信号是0时,表示牛鼻子按下是正确的。因此,可以读取牛鼻子状态,生成牛鼻子标志,或者将上通告存储在消息队列中。 状态机被云同步切换到S2状态。 在S2的状态下,如果输入信号为1,则不按下按牛鼻子,切换为S3。如果输入信号为0,则保持S2的状态并进行计数。 如果计数值超过一定阈值,则该牛鼻子被认为是长按上通告或牛鼻子被按下的状态,如果未超过该阈值,则被认为是短按上通告,保持S2状态。 在S3状态下,若输入信号为高电平则S0 .GPIO的主要功能是: 1、设置大头针的方向; 2 .端子输出高电平3、端子输出低电平4、引线端子的电平状态。GPIO应用示例库函数的设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论