我按照下面的程序设置的,PA3和PA14位上拉输入模式,然后检测两个IO口的状态来反馈串口的输出,但是当两个IO口都接地的时候串口显示00 FA FE FA FE FF,其余情况无论怎么接都显示00 FA FE FA FE 55,无法按照我设定的情况检测运行,大神知道怎么回事么?
void key_deal(void)
{
key_value = key_detetc();//扫描按键值
if(key_value==3)//两个按键都按下
{
send_state();
USART1->DR=0xaa;
while((USART1->SR&0X40)==0);//等待发送结束
}
else if(key_value==0)//两个按键都没有按下
{
send_state();
USART1->DR=0x55;
while((USART1->SR&0X40)==0);//等待发送结束
}
else
{
send_state();
USART1->DR=0xff;
while((USART1->SR&0X40)==0);//等待发送结束
}
}
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//init GPIOA.3,GPIOA.14 上拉输入
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_14;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
|