原本是开始学EDA时开的博客,但最近转向嵌入式学习,但这还是我比较喜欢和常来的地方,也非常希望走过的朋友能留下你们的足迹。QQ:94073982。ARM-Linux的学习群:群号:60696568(嵌入式Linux-s3c2410)。欢迎加入。

ARM9硬件接口学习之三 GPIO

上一篇 / 下一篇  2008-09-29 18:54:18

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
下载: 下载

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-09  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 20405
  • 日志数: 132
  • 文件数: 1
  • 建立时间: 2007-07-30
  • 更新时间: 2009-01-05

RSS订阅

Open Toolbar