S3C2440输入/输出端口

端口控制描述(详细见S3C2440的数据手册)

端口配置寄存器(GPACON至GPJCON)

端口数据寄存器(GPADAT至GPJDAT)

端口上拉寄存器(GPBUP至GPJUP)

杂项控制寄存器

外部中断控制寄存器

 

用一个实例(LED流水灯)来学习下输入/输出端口

(在TQ2440开发板中 是用GPB5~8控制LED1~4)

#include "2440addr.h"

#define  LED1_ON	(rGPBDAT &=~(1<<5))
#define  LED1_OFF	(rGPBDAT |=(1<<5) )
#define  LED2_ON	(rGPBDAT &=~(1<<6))
#define  LED2_OFF	(rGPBDAT |=(1<<6))
#define  LED3_ON	(rGPBDAT &=~(1<<7))
#define  LED3_OFF	(rGPBDAT |=(1<<7))
#define  LED4_ON	(rGPBDAT &=~(1<<8))
#define  LED4_OFF	(rGPBDAT |=(1<<8))

void Delay(void)
{
	int i;
	for(i=0;i<1000000;i++);
}

int Main()
{
	rGPBCON &=~((3<<10)|(3<<12)|(3<<14)|(3<<16));	//对GPBCON[10:17]清零
	rGPBCON |=((1<<10)|(1<<12)|(1<<14)|(1<<16));	//设置GPB5~8为输出
	rGPBUP &=~((1<<5)|(1<<6)|(1<<7)|(1<<8));		//设置GPB5~8的上拉功能
	rGPBDAT |=(1<<5)|(1<<6)|(1<<7)|(1<<8);			//关闭LED
	
	while(1)
	{
		LED1_ON;Delay();LED1_OFF;
		LED2_ON;Delay();LED2_OFF;
		LED3_ON;Delay();LED3_OFF;
		LED4_ON;Delay();LED4_OFF;
	}
}
		


其中启动代码那块你需要自己加上去,

说明下2440addr.h:定义2440寄存器的地址,包括存储器寄存器地址、中断向量地址、DMA地址、时钟电源管理寄

存器地址、LCD控制寄存器地址、Nand Flash地址、UART、PWM定时器、USB Device、WatchDog、IIC、IIS、I/O

端口、ADC、SPI、SD卡、ISR寄存器地址等。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值