在控制的时候,发现按下矩阵键盘,并没有按键效果,非常的奇怪。
GPIO初始化
void KB_INIT() //初始化行线列线GPIO
{
GPIO_InitTypeDef KB_Struct;
RCC_APB2PeriphClockCmd(KB_L_CLK | KB_R_CLK ,ENABLE);
/*行线初始化*/
KB_Struct.GPIO_Pin = KB_R_PB12 | KB_R_PB13 | KB_R_PB14 | KB_R_PB15;
KB_Struct.GPIO_Mode = GPIO_Mode_Out_PP; //行线为输出
GPIO_Init(KB_R_Port, &KB_Struct);
/*列线初始化*/
KB_Struct.GPIO_Pin = KB_L_PA4 | KB_L_PA5 | KB_L_PA6 | KB_L_PA7;
KB_Struct.GPIO_Mode = GPIO_Mode_IPD; //列线为输入 下拉输入
GPIO_Init(KB_L_Port, &KB_Struct);
}
按键检测
_R_TO1; //将行线全部置1
// if(GPIO_ReadOutputDataBit(KB_R_Port,KB_R_PB13) == 1)
// {
// LED2_Reversal;
// } 验证成功,成功置1
if(GPIO_ReadInputDataBit(KB_L_Port,KB_L_PA4) == 1)
{
LED2_Reversal;
}
想一步一步的做矩阵键盘,发现在 if(GPIO_ReadInputDataBit(KB_L_Port,KB_L_PA4) == 1)
{
LED2_Reversal;
}
这一步,按下键盘没有效果,很疑惑。
望大家指点一二
一周热门 更多>