第四章GPIO接口

上传人:m**** 文档编号:584965014 上传时间:2024-09-01 格式:PPT 页数:23 大小:978KB
返回 下载 相关 举报
第四章GPIO接口_第1页
第1页 / 共23页
第四章GPIO接口_第2页
第2页 / 共23页
第四章GPIO接口_第3页
第3页 / 共23页
第四章GPIO接口_第4页
第4页 / 共23页
第四章GPIO接口_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《第四章GPIO接口》由会员分享,可在线阅读,更多相关《第四章GPIO接口(23页珍藏版)》请在金锄头文库上搜索。

1、第第4章章 GPIO接口接口2021/8/21 GPIO接口接口时通用通用输入入输出端口,通俗的出端口,通俗的说,就是,就是一些引脚,可以通一些引脚,可以通过它它们输出高低出高低电平或者通平或者通过它它们读入引脚状入引脚状态是高是高电平平还是低是低电平。平。GPIO操作是所有硬件操作的基操作是所有硬件操作的基础,由此,由此扩展开来展开来可以了解所有硬件的操作,可以了解所有硬件的操作,这是底是底层开开发人人员必必须掌握的。本章主要内容有:掌握的。本章主要内容有:GPIO介介绍。按按键控制控制LED实例例本章内容:本章内容:2021/8/224.1 GPIO概述概述4.1.1 GPIO简介介GPI

2、O是是ARM芯片最基本的芯片最基本的输入入输出通道,在出通道,在RVDS下操下操作作类似于似于单片机的工作,直接片机的工作,直接读写其寄存器。写其寄存器。S5PV210共共有有237个个GPIO端口,分端口,分为15组。各。各组GPIO口的数量及属口的数量及属性如下:性如下:GPA0: 8输入入/输出引脚。出引脚。GPA1:4输入入/输出引脚。出引脚。GPB:8输入入/输出引脚。出引脚。GPC0: 5输入入/输出引脚。出引脚。GPC1: 5输入入/输出引脚。出引脚。GPD0: 4输入入/输出引脚。出引脚。GPD1:6输入入/输出引脚。出引脚。2021/8/23GPE0、GPE1:13输入入/输

3、出引脚。出引脚。GPF0、GPF1、GPF2、GPF3: 30输入入/输出引脚。出引脚。GPG0、GPG1、GPG2、GPG3: 28输入入/输出引脚。出引脚。GPH0、GPH1、GPH2、GPH3: 32输入入/输出引脚。出引脚。GPI:低功率:低功率12S、PCM。GPJ0、GPJ1、GPJ2、GPJ3、GPJ4: 35输入入/输出引脚。出引脚。MP0_1、MP0_2、MP0_3: 20输入入/输出引脚。出引脚。MP0_4、MP0_5、MP0_6、MP0_7: 32输入入/输出引脚。出引脚。GPIO的的15组引脚既可以作引脚既可以作为输入,也可以作入,也可以作为输出。除出。除了可以作了可以

4、作为输入入/输出引脚,出引脚,这些引脚一般都具有其他功能,些引脚一般都具有其他功能,即引脚复用,而具体要用哪个功能,需要通即引脚复用,而具体要用哪个功能,需要通过与引脚有关与引脚有关的控制寄存器来的控制寄存器来设置。每置。每组GPIO所具有的其他功能,可所具有的其他功能,可查询S5PV210的芯片手册。的芯片手册。2021/8/244.1.2 GPIO寄存器寄存器每每组GPIO端口有两端口有两类控制寄存器,分控制寄存器,分别工作在正常模式工作在正常模式和掉和掉电模式(模式(STOP、DEEP-STOP、睡眠模式)。、睡眠模式)。在正常模式下,正常寄存器工作;如果在正常模式下,正常寄存器工作;如

5、果S5PV210进入掉入掉电模式,所有配置和上拉模式,所有配置和上拉/下拉控制由掉下拉控制由掉电寄存器控制。寄存器控制。 相关寄存器的功能描述如下:相关寄存器的功能描述如下:相关寄存器的功能描述如下:相关寄存器的功能描述如下:(1)GPIO的控制寄存器的控制寄存器GPxnCON:用来:用来设置置GPIO引脚引脚的功能。的功能。(2)GPIO端口的控制寄存器中,每端口的控制寄存器中,每4位控制一个引脚,位控制一个引脚,0000时为输入入IO口,口,0001时为输出出IO口,其他端口根据其口,其他端口根据其功能的不同可以功能的不同可以单独独查看看S5PV210的芯片手册。的芯片手册。(3)GPIO

6、的数据寄存器的数据寄存器GPxnDAT用于用于读写引脚的状写引脚的状态,及及该端口的数据。端口的数据。(4)GPIO的上拉的上拉/下拉寄存器下拉寄存器GPxnPUD用于控制每个端用于控制每个端口口组上拉上拉/下拉下拉电阻的使能阻的使能/禁止。某位禁止。某位为0时对应引脚使用引脚使用上拉上拉/下拉下拉电阻,某位阻,某位为1时对应引脚不使用上拉引脚不使用上拉/下拉下拉电阻。阻。2021/8/254.1.3 IO操作的步操作的步骤骤首先,首先,要确定控制要确定控制过程所用到的程所用到的GPIO端口的功能,如果端口的功能,如果只是作只是作为基本基本输入入/输出引脚来出引脚来进行控制,行控制,则大部分情

7、况下大部分情况下不需要不需要进行行GPIO上拉上拉/下拉寄存器的下拉寄存器的设置,如果需要使用置,如果需要使用引脚其他功能,引脚其他功能,则需需对照照S5pv210的芯片手册的芯片手册对相相应位位进行行设定。定。其次,其次,要要进行引脚行引脚输入入/输出方向控制,通出方向控制,通过端口控制寄存端口控制寄存器器进行相行相应设置,完成端口作置,完成端口作为输入入/输出功能或者第二功出功能或者第二功能引脚的配置(能引脚的配置(0000表示表示输入,入,0001表示表示输出)。出)。最后,最后,对数据寄存器数据寄存器进行操作完成行操作完成输入入/输出功能的出功能的实现,如果如果设置置为输入入/输出引脚

8、,出引脚,则通通过读取数据寄存器就能取数据寄存器就能实现引脚状引脚状态的的读取,反之,如果取,反之,如果设置置为输出引脚,出引脚,则通通过写寄存器就能写寄存器就能实现引脚状引脚状态的的设置。置。2021/8/264.2 按按键键控制控制LED实实例例4.2.1 硬件原理硬件原理图本本实例的例的试验目的是目的是实现通通过K1-K2控制控制LED_1-LED_2指示灯。指示灯。预期的期的实验现象是按象是按键K1-K2分分别对应指示灯指示灯LED_1-LED_2的通断,当按的通断,当按键按下按下时,对应的的LED指示灯被点亮。按指示灯被点亮。按键应当作当作为输入引脚来入引脚来获取引脚的状取引脚的状态

9、判断按判断按键是否被按下;是否被按下;LED指示灯指示灯则作作为输出引脚,当按出引脚,当按键被按下以后,被按下以后,设置置LED数据寄存器的状数据寄存器的状态,控制,控制LED指示灯的指示灯的亮与亮与灭。2021/8/27首先,首先,查看有关于看有关于按按键的硬的硬件件连接接图,如如图所示:所示:按按键对应于于EINT0-5,及,及KP_COL6-72021/8/28GPH0和和GPH2的三个寄存器的地址以及每个引脚所的三个寄存器的地址以及每个引脚所对应的寄存器位的寄存器位应该查询S5PV210的硬件手册,如的硬件手册,如图所示:所示:2021/8/29接下来,接下来,查看看LED灯的硬件灯的

10、硬件连接接图,如,如图所示。所示。当控制引脚置位高当控制引脚置位高电平平时,线路路处于于导通,此通,此时对应的的LED灯点亮;当控制引脚置灯点亮;当控制引脚置为低低电平平时,对应线路路处于断路状于断路状态,此,此时,对应的的LED灯灯灭。2021/8/210LED指示灯作指示灯作为输出引脚,出引脚,S5pv210直接通直接通过控制控制引脚引脚GPC14:3的高低的高低电平来平来实现LED指示灯的通指示灯的通断。断。程序程序设计逻辑为:(1)将按将按键对应引脚引脚设置置为输入引脚,将入引脚,将LED指指示灯示灯对应控制引脚控制引脚设置置为输出引脚。出引脚。(2)通通过查询方式方式进行按行按键状状

11、态的判断,从而的判断,从而实现对LED指示灯的控制。指示灯的控制。2021/8/2114.2.2 实实例例测试测试 通通通通过过一个一个一个一个GPIOGPIO口控制口控制口控制口控制LEDLED指示灯的指示灯的指示灯的指示灯的实实例。例。例。例。代代码如如下(下(key.c):):#define GPC1CON *(volatile unsigned long *)0xE0200060)#define GPC1DAT *(volatile unsigned long *)0xE0200064)#define GPH0CON *(volatile unsigned long *)0xE0200

12、C00) #define GPH0DAT *(volatile unsigned long *)0xE0200C04)2021/8/2124.2.2 实实例例测试测试定定义GPH0的两个寄存器的地址所指向的内容。的两个寄存器的地址所指向的内容。int main() int key_val = 0; int bit; GPC1CON &= (0xFF 12); GPC1CON |=(0x0112)|(0x0116);/ 配置配置GPC1_3和和GPC1_4为输出:出:LED1和和LED2LED控制引脚控制引脚设置置为输出引脚出引脚GPC1_3/4LED1/2 2021/8/213GPC1DAT

13、&= (0xFF 0); LED指示灯初始化状指示灯初始化状态都熄都熄灭。GPH0CON &= (0xFF 0); / 配置配置GPH0_0和和GPH0_1为输入:入:key0和和key1按按键初始化。初始化。 while (1) key_val = GPH0DAT & 0x3;/取得取得GPH0DAT的低两位,的低两位,赋值给key_val if (key_val)/如果不如果不为0,表示可能有按,表示可能有按键按下按下 delay(500000); / 防抖延防抖延时 2021/8/214key_val = GPH0DAT & 0x3; /延延时后后继续获取取GPH0DAT的的低两位的的低

14、两位 if (key_val) /如果如果还不不为0,表示真正有按,表示真正有按键按下按下 if (0x01 = key_val) / 如果如果值为0x1(0b01)表示)表示key1按按下下 GPC1DAT = 1 3; / 点亮点亮toggle LED1 else if (0x02 = key_val) / 如果如果值为0x2(0b10)表示)表示key2按按下下 GPC1DAT = 1 key.dis key.o : key.carm-linux-gcc -c $ -o $start.o:start.Sarm-linux-gcc -c $ -o $clean:rm *.o *.elf *

15、.bin *.dis2021/8/2174.2.3 跑跑马马灯灯实实例例本本实例通例通过3个文件个文件进行行实现跑跑马灯。灯。Main.c代代码如下:如下:#defineGPC1CON(*(volatile unsigned long *)0xE0200060)#defineGPC1DAT(*(volatile unsigned long *)0xE0200064)#define LEDS 1#define DELAYVAL 12021/8/218/*延延时等待函数等待函数*/ int delay(int time) int i,j; for(i=0;itime;i+) for(j=0;j0x

16、fffff;j+); return 0;2021/8/219int main() /设置功能引脚置功能引脚GPIO GPC1CON &=(0xFF12);/清零清零12到到19位位 GPC1CON |=(LEDS12)|(LEDS16);/设置置19:12位位为00010001,即,即GPC1_3 GPC1_4为output功能功能 /设置数据引脚置数据引脚GPIO GPC1DAT |=33; /GPC1DAT &=(33);/熄熄灭两个两个led /GPC1PUD = 0x2AA; while(1) /点灯点灯 2021/8/220/跑跑马灯灯 GPC1DAT |=13;/亮亮led1 de

17、lay(DELAYVAL);/等待等待 GPC1DAT &=(13);/灭led1 delay(DELAYVAL); GPC1DAT |=23;/亮亮led2 delay(DELAYVAL); GPC1DAT &=(23);/灭led2 delay(DELAYVAL); start.S、Makefile文件文件编写和程序写和程序烧写写过程参考上一程参考上一节。2021/8/221本章小本章小结结本章主要介本章主要介绍了了S5PV210的的S5PV210的的GPIO,对SPV210的的GPIO进行了行了详细的分析和介的分析和介绍,并且,并且通通过实例来例来进行了相行了相应的用法介的用法介绍。GPIO的操作是所有硬件操作的基的操作是所有硬件操作的基础,由此,由此扩展开展开来可以了解所有硬件的操作,来可以了解所有硬件的操作,这是底是底层开开发人人员必必须掌握的。掌握的。因此,因此,对GPIO的学的学习是展开所有硬件操作的基是展开所有硬件操作的基础。2021/8/222部分资料从网络收集整理而来,供大家参考,感谢您的关注!

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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