一、硬件原理图分析。
按键 KEYO 链接到了 UART1_CTS 引脚上。默认情况下 UART1_CTS 为高,当按下 KEYO
以后 UART1_CTS 为低。
·二、实验程序编写
1、设置 UART1_CTS 复用为 GPIO1_I018。
IOMUXC_SetPinMux(IOMUXC_UART1_CTS_B_GPIO1_IO18,0);
IOMUXC_SetPinConfig(IOMUXC_UART1_CTS_B_GPIO1_IO18,0xF080);
2、设置 UART1_CTS 的电气属性。
3、配置 GPIO1_IO08 为输入模式。
GPIO1->GDIR &= ~(1 << 18);
4、读取按键值,也就是 GPIO1_1018 的高低电平。
int read_key(void){
int ret=0;
ret =((GPIO1->DR)>>18)&0X1;
return ret;
}
int key_getvalue(void)
{
int ret = 0;
static unsigned char release = 1; /* 按键松开 */
if((release==1)&&(read_key() == 0)) /* KEY0 */
{
delay(10);
release = 0;
if(read_key()== 0)
ret = KEY0_VALUE;
}
else if(readkey() == 1)
{
ret = 0;
release = 1;
}
return ret;
}