用stm32控制矩阵键盘程序无效是什么原因

2019-07-14 18:35发布

在控制的时候,发现按下矩阵键盘,并没有按键效果,非常的奇怪。

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;
    }
这一步,按下键盘没有效果,很疑惑。

望大家指点一二
0条回答

一周热门 更多>