Chinaunix首页 | 论坛 | 博客
  • 博客访问: 491800
  • 博文数量: 52
  • 博客积分: 5017
  • 博客等级: 大校
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-20 11:34
文章分类
文章存档

2011年(1)

2008年(51)

我的朋友

分类: LINUX

2008-01-31 01:48:55

GPIO口一是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(UART),控制硬件工作(LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛。

S3C2410一共有GPAGPH 8GPIO口、117pins

 

The S3C2410A has 117 multi-functional input/output port pins. The ports are:
— Port A (GPA): 23-output port
— Port B (GPB): 11-input/output port
— Port C (GPC): 16-input/output port
— Port D (GPD): 16-input/output port
— Port E (GPE): 16-input/output port
— Port F (GPF): 8-input/output port
— Port G (GPG): 16-input/output port
— Port H (GPH): 11-input/output port

 

这些I/O Ports大部分是复用的,通常可以用作为输入口(input)、输出口(output)以及特殊功能口(如中断信号)。通过相应口的配置寄存器(GPxCON)可以选择配置为不同的功能。配置好GPIO口的功能后就可以在相应数据寄存器GPxDAT/写数据,GPxUP用于确定是否使用内部上拉电阻。

(注:上拉电阻作用为当I/O PORTS被定义为input口时,为了避免信号干扰产生不正确的值,通常会使用上拉电阻。)

当引脚设为输入时,读此寄存器可知相应引脚的状态是高是低;当引脚设为输出时,写此寄存器相应位可令此引脚输出低电平或高电平。GpxUP:某位为0时,相应引脚无内部上拉;为1时,相应引脚使用内部上拉。

注:S3c2410各个GPIO口的地址和作用参考Datasheet9 I/O PORTS

 

小键盘控制LED灯显示实验:

K1-K4中某个按键按下时,LED1-LED4中相应LED点亮。

要完成这个实验,我们可以分为两步:

一.看懂发板电路图,确定使用到哪些CPU引脚

上面是我开发板armsys2410 LED部分对应的电路图。从图中可以看出,armsys2410 LED0-LED3分别对应I/OGPF4-GPF7

那如何控制LED灯亮灭呢?同样可以在电路图中看出。LED二极管左边为高电压(VDD33V),因此只要在LED右边对应的GPF口引脚输入低电平,导通电路,LED就可以亮了。即要使某个灯亮,就使对应引脚输出一个低电平(灭:高电平)。

这里是小键盘K1-K4部分对应的电路图。查看GPIO datasheet部分可以知道,EINT0对应GPF0EINT2对应GPF2EINT19对应GPG11。即K1对应GPF0K2对应GPF2K3对应GPG3   K4对应GPG11

 

二.配置对应的GPIO

配置小键盘KEY1-KEY4对应的GPIO口为输入口,通过读取该口对应的状态信号,可以判断按键有没按下。配置LED0-LED3对应的GPIO口为输出口。通过输入数据控制LED灯闪灭。下面就是通过对寄存器赋相应的值控制LED显示了。

 

文件: key_led.rar
大小: 23KB
下载: 下载

 

 

返回ARM9硬件接口学习专题

 

 

 

 

阅读(5761) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~