GPIO:General Purpose I/O Ports 通用输入输出端口
S3C2440有130个复用IO引脚,分为PortA-PortJ 9个端口,每个端口都可以通过软件配置实现不同的需要,在启动主程序之前,必须先定义各个引脚的使用用途。
重要的的寄存器
1、PORT CONFIGRATION REGISTER(GPACON-GPJCON):
通过配置GPXCON寄存器来设置每个pin脚的功能.S3C2440的PortA比较特殊,一方面是因为output-only,另外一方面
是因为地址线复用
2、PORT DATA REGISTER(GPADAT-GPJDAT)
对于读引脚,该寄存器的位代表引脚的输入电平
对于写引脚,该寄存器的位代表引脚的输出电平
3、PORT PULL-UP REGISTER(GPBUP-GPJUP)
每一位代表着是否使能上拉电阻。
上拉电阻的作用在于,当GPIO引脚处于第三态时,他的电平状态是由上拉电阻决定的。
4、MISCELLANEOUS CONTROL REGISTER
这个寄存器控制在休眠模式下的数据端口上拉电阻,USB键盘,和CLKOUT选择
Mini2440的LED硬件连接图如下:
通过硬件图我们可以看到4个LED灯分别接到GPB5,GPB6,GPB7,GPB8,根据二极管的连接情况,若想点亮LED灯,就必须将对应的引脚输出低电平。
要想点亮LED,就要配置GPBCON使得GPB(5-8)引脚为输出模式,写入电平值GPBDAT使得GPB(5-8)的输出电平为低
以点亮LED1为例:
#define GPBCON (*(volatile unsigned long *)0x56000010)
#define GPBDAT (*(volatile unsigned long *)0x56000014)
#define GPB5Out (1 << (5*2))
GPBCON = GPB5Out
GPBDAT &= ~(1 << 5)
待续。。。