[其他ST产品] 用stm32控制矩阵键盘程序无效是什么原因

[复制链接]
1088|15
 楼主| jcky001 发表于 2024-7-31 19:06 | 显示全部楼层 |阅读模式
在控制的时候,发现按下矩阵键盘,并没有按键效果,非常的奇怪。

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

望大家指点一二
flycamelaaa 发表于 2024-8-8 17:30 | 显示全部楼层
检查是否有引脚短路或接触不良的情况。
powerantone 发表于 2024-8-8 22:00 | 显示全部楼层
矩阵键盘和STM32是否都正确连接到电源和地线。
classroom 发表于 2024-8-9 16:00 | 显示全部楼层
可能是矩阵键盘或STM32硬件存在故障
probedog 发表于 2024-8-9 19:00 | 显示全部楼层
检查是否有外部干扰(如电磁干扰)影响矩阵键盘的正常工作。
stormwind123 发表于 2024-8-9 23:00 | 显示全部楼层
软件配置问题
一秒落纱 发表于 2024-8-21 21:34 | 显示全部楼层
先保证你的接线都是正确的
光辉梦境 发表于 2024-8-21 22:30 | 显示全部楼层
一般来说,你的程序要是从哪儿拷贝过来的,可能就会这样

三生万物 发表于 2024-8-22 01:00 | 显示全部楼层
网上随便找个例程,移植一下不就好了吗

别乱了阵脚 发表于 2024-8-22 02:00 | 显示全部楼层
是不是IO配置这块有点问题呢?

冰春彩落下 发表于 2024-8-22 05:00 | 显示全部楼层
确保你的硬件连接和程序逻辑正确,逐步调试并检查每一步的状态,通常可以找到问题所在。

淡漠安然 发表于 2024-8-22 06:00 | 显示全部楼层
确保矩阵键盘的行和列正确连接到STM32GPIO引脚

夜阑风雨 发表于 2024-8-22 07:00 | 显示全部楼层
一定要设置GPIO引脚配置为正确的模式(输入或输出)检查是否有上拉或下拉电阻配置正确

暖了夏天蓝了海 发表于 2024-8-22 08:00 | 显示全部楼层
保证确保扫描矩阵键盘的逻辑正确。通常,矩阵键盘的扫描方法是:先设置所有行引脚为输出并拉低,然后逐行扫描,同时读取列引脚的状态

江河千里 发表于 2024-8-22 11:00 | 显示全部楼层
如果使用中断或定时器来检测按键,确保中断或定时器配置正确

远山寻你 发表于 2024-8-22 13:00 | 显示全部楼层
使用调试工具(如ST-Link)和逻辑分析仪来检查GPIO引脚的状态

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1670

主题

5886

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部