This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCA8418: 求助:已经配置3Row4Col,按任意按键都可以读到12个按键值

Part Number: TCA8418

3row,4col的矩阵按键,每次按下均收到12个按键值

以下是串口打印,GPIOB_Pin_8 interrupt是接收到INT中断,write是写寄存器,reg addr是对应的寄存器地址,receive是读寄存器的结果,数据均为16进制,我的理解应该是按下和释放单个按键都只能收到一个键值,十分不理解,请大佬帮助分析一下,盼回复,万分感谢!

====================config=====================

write device addr 34,reg addr 1, data 19

write device addr 34,reg addr 1d, data 7
write device addr 34,reg addr 1e, data f

============long press one button================
[10:38:41.277]收←◆GPIOB_Pin_8 interrupt,IT status 1,gpio input data 0
receive reg addr 2 is 1
receive reg addr 3 is 4

=============receive 4 keys press =================
receive reg addr 4,key value is 81
receive reg addr 4,key value is 82
receive reg addr 4,key value is 83
receive reg addr 4,key value is 84
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 0
receive reg addr 3 is 0

[10:38:41.371]收←◆GPIOB_Pin_8 interrupt,IT status 1,gpio input data 0
receive reg addr 2 is 1
receive reg addr 3 is 2

=============receive 2 keys press =================
receive reg addr 4,key value is 8d
receive reg addr 4,key value is 97
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 0
receive reg addr 3 is 0
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 0
receive reg addr 2 is 11
receive reg addr 3 is 6

=============receive 6 keys press =================
receive reg addr 4,key value is 8b
receive reg addr 4,key value is 95
receive reg addr 4,key value is 8c
receive reg addr 4,key value is 96
receive reg addr 4,key value is 8e
receive reg addr 4,key value is 98
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 0
receive reg addr 3 is 0

=============release button =================

[10:38:46.793]收←◆GPIOB_Pin_8 interrupt,IT status 1,gpio input data 0
receive reg addr 2 is 1
receive reg addr 3 is 2

=============receive 2 keys release=================

receive reg addr 4,key value is 4
receive reg addr 4,key value is 18
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 0
receive reg addr 3 is 0
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 0
receive reg addr 2 is 1
receive reg addr 3 is 1

=============receive 1 key release =================

receive reg addr 4,key value
[10:38:46.849]收←◆is e
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 0
receive reg addr 3 is 0

[10:38:46.884]收←◆GPIOB_Pin_8 interrupt,IT status 1,gpio input data 0
receive reg addr 2 is 1
receive reg addr 3 is 6

=============receive 6 keys release =================
receive reg addr 4,key value is 1
receive reg addr 4,key value is b
receive reg addr 4,key value is 15
receive reg addr 4,key value is 2
receive reg addr 4,key value is c
receive reg addr 4,key value is 16
GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 1
receive reg addr 3 is 3

=============receive 3 keys release =================

receive reg addr 4,key value is 3
receive reg addr 4,key value is d
receive reg addr 4,key value is 17

======================end =======================

GPIOB_Pin_8 interrupt,IT status 1,gpio input data 1
receive reg addr 2 is 0
receive reg addr 3 is 0

  • 您好,

    您可以附上原理图吗?

    我知道有的时候会因为按键走线较长或存在寄生电容,使得信号转换回高电平所需的时间过长造成的。TCA8418的 ROW 输入内部上拉很微弱,因此建议您添加外部上拉电阻(比如10KΩ),这通常有助于加快从低到高的转换。如果您的电路图中没有上拉电阻的话,建议您先添加上拉电阻试一试