C:\Users\huangfeng\Desktop\薄膜按键
这个是我是用的薄膜按键
void main(void)
{
u16 scan,scan1,keycode;
u8 j,key;
GPIO_Init(GPIOB, GPIO_PIN_ALL, GPIO_MODE_IN_FL_IT);
GPIO_Init(GPIOC, GPIO_PIN_ALL , GPIO_MODE_OUT_PP_LOW_FAST);
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);
enableInterrupts();
/* Infinite loop */
while (1)
{
GPIOB->DDR=0xf0;
GPIOB->CR1=0x01;
GPIOB->CR2=0xfe;
GPIO_Write(GPIOB,0x0f);
scan=GPIO_ReadInputData(GPIOB);
if((scan & 0x0f)!=0x0f)
{
Delay((u16)30);
scan=GPIO_ReadInputData(GPIOB);
if((scan & 0x0f) != 0x0f)
{
GPIOG->DDR=0x0f;
GPIO_Write(GPIOB,0xf0);
scan1=GPIO_ReadInputData(GPIOB);
keycode=scan|scan1;
for(j=0;j<+15;j++)
{
if(keycode==key_code[j])
{
key=j;
show((u8)key);
}
}
}
}
else
GPIO_Write(GPIOD,0xff);
}
}
我的程序如上,请大神们指教,我这个上拉输入、推挽输出设置, 哪里有问题?运行出来行扫描是对的,列扫描就出错了 |