嵌入式开发第44天(GPIO的使用)

来源:互联网 发布:淘宝售后服务专员认证 编辑:程序博客网 时间:2024/05/17 19:59

为什么存在GPIO?

在讲GPIO以前先讲讲arm处理器跟GPIO的关系,想象一下处理器是怎么造出来的,为什么他可以做出如此多的运算。

原来在机器运算里面,他们的世界只有0与1,但人类为了更好的分配无数的0和1,他给每个位都分配了一个对应的名字。

所以产生寄存器,每个寄存器都是独特的,他们都有各自的疆域,也就是对应的物理地址,你要用GPIO,就需要,到他所在的地址那解放出来。


GPIO就是寄存器中的一员,在S5PV210处理器他所管理的疆域是包括237多功能输入/输出端口引脚和142内存端口别针。


怎么点亮开发板上的一盏灯?

你要点灯当然需要通电啊,怎么通对应的电?





1、GPJ2CON --->GPJ2配置寄存器//也就灯的电源总闸


配置GPJ2GPIO中各个引脚的功能。





2、GHJ2DAT ---->数据寄存器  //即使电源总闸打开了,对应的灯也得打开啊





让名为GPJ2_2的灯一闪一闪


#define  GPJ2CON  (*(volatile unsigned int *)0xe0200280)#define  GPJ2DAT  (*(volatile unsigned int *)0xe0200284)void delay(int val);void _start(void){//GPJ2_2 --->output ,GPJ2CON[11:8]=0001GPJ2CON &= ~(0xf<<8);  //清零GPJ2CON |=  (0x1<<8);//打开对应灯的总闸while(1){//GPJ2_2 ouput '0', LED3 亮,GPJ2DAT[2]=0GPJ2DAT &= ~(1<<2);delay(0x300000);//延时函数//GPJ2_2 ouput '1', LED3 灭,GPJ2DAT[2]=1GPJ2DAT |= (1<<2);delay(0x300000);}}void delay(int val){int i;for(i=0;i<val;i++);}







0 0
原创粉丝点击