GPIO接口编程

GPIO接口编程
一、S3C2410有117个I/O口,共分为A~H共8组,可以通过设置寄存器来确定某个引脚用于输入、输出还是其他特殊功能。

和I/O操作相关的寄存器:

1、GPxCON

    用于配置引脚功能;

    GPACON中每一位对应一个引脚(共23根),0——输出,1——用于地址线或地址控制,一般GPACON通常设为全1,以便访问外部存储器件;

    其余I/O组的GPCON寄存器中每两位控制一个引脚,00——输入、01——输出、10——特殊功能、11——保留;

    

2、GPxDAT

    GPxDAT用于读/写引脚,当引脚被设为输入时,读此寄存器可知相应引脚的电平状态;

                                      当引脚被设为输出时,写此寄存器相应位可令此引脚输出高电平或低电平;

3、GPxUP

    某位为1,相应引脚无内部上拉电阻;

    为0,相应引脚使用上拉电阻;

    上拉电阻的作用:当I/O引脚处于三态时,它的电平状态由上拉电阻、拉电阻确定。

二、S3C2410的寄存器地址列表如下:

GPACON                   0x5600_0000

GPADAT                    0x5600_0004

GPBCON                   0x5600_0010

GPBDAT                    0x5600_0014

GPBUP                      0x5600_0018

GPCCON                   0x5600_0020

GPCDAT                    0x5600_0024

GPCUP                     0x5600_0028

GPDCON                   0x5600_0030

GPDDAT                    0x5600_0034

GPDUP                      0x5600_0038

GPECON                   0x5600_0040

GPEDAT                    0x5600_0044

GPEUP                      0x5600_0048

GPFCON                   0x5600_0050

GPFDAT                    0x5600_0054

GPFUP                      0x5600_0058

GPGCON                   0x5600_0060

GPGDAT                    0x5600_0064

GPGUP                      0x5600_0068

GPHCON                   0x5600_0070

GPHDAT                    0x5600_0074

GPHUP                      0x5600_0078

三、引脚操作

以GPB为例,

1、首先通过宏定义将寄存器与其地址关联起来

    #define  GPBCON     (*(volatile  unsigned  long *)0x56000010)

    #define  GPBDAT      (*(volatile  unsigned  long *)0x56000014)

2、配置管脚功能

    GPBCON = (1 << (5*2));  //GPB5设置为输出

3、引脚输出

    

    GPBDAT &= ~(1 << 5);      //GPB5输出低电平

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值