微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM7学习---按键测试程序(LPC2103 IO0PIN)

ARM7学习---按键测试程序(LPC2103 IO0PIN)

时间:11-18 来源:互联网 点击:
今天一直在学习按键测试程序,看上去很简单,按键嘛谁都会用,很多种单片机里都是用过了,但是今天还是遇到了一个问题,而且花了我半天的时间调试和找问题。刚开始我不会用LPC2103的GPIO,后来查了数据手册,知道了读取IO口的方法是读取IOPIN寄存器,LPC2103使用的是IO0PIN。我程序写好,把按键通过串口反馈信息。但是我一直测试没按键的时候输入按键口状态不稳定,有按键的时候还是很稳定的。我以为程序出错了,一直在修改程序,但是还是一样的情况。后来静下心来想了下,是否IO配置错了?但是检查了好多遍,IO是配置为输入,没什么问题的。后来终于想起来了,我没在按键的IO口加上拉电阻,以前我在51 STC AVR单片机的按键口都不加上拉电阻的,因为IO内部有上拉可以配置的,结果我看了下LPC2103,没找到。所以我外部加了个10K的上拉电阻,这回再测试,OK了,哈哈!真高兴!一下是示例程序:我从我整个程序了挑出了按键部分程序,串口通信程序没添加上去。

//#include
//#include

#define K1 (1<19) //定义按键1的引脚

void keytest(void);

void keytest(void) //按键测试程序
{
if((IO0PIN&K1)==0x00) //判断是否有按键按下
{
//按键去抖
while((IO0PIN&K1)==0x00) //判断是否有按键放开
{
delayms(100);
}
UART0_SendStr("K1");
}
else
{;}
}

////////////主程序///////////////

int mian()

{

PINSEL0 |= 0x00000005; //设置I/O连接到UART0,其他为普通GPIO口
PINSEL1 |= 0x00000000;
UART0_INT(); //串口初始化

while(1)

{keytest();}//按键测试程序

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top