代码摘要:
GPIO_SetBits( GPIOA, GPIO_Pin_3);
GPIO_SetBits( GPIOB, GPIO_Pin_1);
GPIO_SetBits( GPIOB, GPIO_Pin_2);
//扫描按键
scana = GPIO_ReadInputData(GPIOA);
scana = scana & 0x07;
//如果按键按下 则延迟 再扫描 然后根据判断处理
if(scana)
{
delay();
scana = GPIO_ReadInputData(GPIOA);
scana = scana & 0x07;
//翻转,二次读取
GPIO_Reconfiguration();
GPIO_SetBits( GPIOA, GPIO_Pin_0);
GPIO_SetBits( GPIOA, GPIO_Pin_1);
GPIO_SetBits( GPIOA, GPIO_Pin_2);
GPIO_ResetBits( GPIOA, GPIO_Pin_3);
GPIO_ResetBits( GPIOB, GPIO_Pin_1);
GPIO_ResetBits( GPIOB, GPIO_Pin_2);
scanb = GPIO_ReadInputData(GPIOA);
scanb = scanb & (1<<3);
scanb |= ( GPIO_ReadInputData(GPIOB) & ( (1<<1) | (1<<2) ) ) ;
result = scana << 4;
result |= scanb;
GPIO_Configuration();
}
|