GPIO类编程
一.需掌握知识:
应该掌握GPIO的管脚配置。熟悉相关配置的寄存器。
二.程序效果:
今天编写led_key程序,预期的实验结果是,在S5PV210开发板上实现用按键控制LED闪烁。
三.编程思路:
1.首先我们应该知道如何点亮LED。(通过给指定管脚输出高低电平,控制LED亮灭)1).通过查看原理图,我们可以确定led控制的GPIO管脚。确定LED在CPU上对应的管脚。(GPJ2)
2).之后去开发板芯片手册,通过查找管脚得到管脚寄存器的描述。
3).通过查看对应管脚寄存器的描述,我们可以知道,控制led亮灭需要控制 ,GPJ2CON,GPJ2DAT。
4).仔细查看每个寄存器的功能描述。思考如何通过寄存器实现led亮灭操作。
2.现在应该知道如何控制key。(通过指定管脚输入按键的状态)
1). 通过查看原理图,我们可以确定key控制的GPIO管脚。确定key在CPU上对应的管脚。GPH2)
2). 之后去开发板芯片手册,通过查找管脚得到管脚寄存器的描述。知道如何读取key的状态。
3). 通过查看对应管脚寄存器的描述,我们可以知道,获取key按键的状态我们需要控制GPH2CON, GPH2DAT.
4).仔细查看每个寄存器的功能描述。思考如何通过寄存器实现读取按键操作。
3.结合对key和led了解。写出按键实现led闪烁。
四.主程序和初始化程序
int xmain()
{
close_buzzer();
init_led();
init_key();
*rGPJ2DAT = 0x0;
while(1)
{
if( (*rGPH2DAT & 0x01) == 0)
{
delay(1);
if( (*rGPH2DAT & 0x01) == 0)
{
while((*rGPH2DAT & 0x01) == 0);
*rGPJ2DAT = ~(*rGPJ2DAT);
}
}
}
return 0;
}
void init_led()
{
*rGPJ2CON = 0x1111;
}
void init_key()
{
*rGPH2CON = 0x0000;
}