CN105634503B - 检测键盘键值的方法及装置 - Google Patents
检测键盘键值的方法及装置 Download PDFInfo
- Publication number
- CN105634503B CN105634503B CN201511000814.6A CN201511000814A CN105634503B CN 105634503 B CN105634503 B CN 105634503B CN 201511000814 A CN201511000814 A CN 201511000814A CN 105634503 B CN105634503 B CN 105634503B
- Authority
- CN
- China
- Prior art keywords
- key
- state
- current
- keyboard
- detection state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000001514 detection method Methods 0.000 claims abstract description 394
- 238000003825 pressing Methods 0.000 claims abstract description 28
- 230000008569 process Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M11/00—Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
- H03M11/20—Dynamic coding, i.e. by key scanning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明提供一种检测键盘键值的方法及装置,该方法包括:执行键盘扫描,获取当前键盘检测状态,所述当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态,根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态。该方法通过四种键盘检测状态来表示按键从按下到最终被识别并且生效的过程,使得对于键盘检测状态的划分清晰简单,从而保证了MCU资源的高效利用。同时将键值信息的存储分发独立开来,提高了MCU的使用率、系统的实时性和模块的兼容性。
Description
技术领域
本发明涉及微处理器技术,尤其涉及一种检测键盘键值的方法及装置。
背景技术
在电子设备中,键盘是最常见的人机交互手段。具有键盘的电子设备中一般将键盘上的按键通过直连、矩阵连接等方式与电子设备中的微型控制单元(MicrocontrollerUnit,简称MCU)的通用输入输出I/O端口连接,MCU再以定期扫描等方式读取通用I/O端口对应的键盘的键值,再通过一定的算法进行键盘消抖并确定最终的键值。
现有技术中,在使用定期扫描方式检测键盘的键值时,会在每个扫描周期时确定一个按键状态,在下一次扫描周期时根据读取到的键值信息确定一个新的按键状态,并根据前一次的按键状态和新的按键状态确定出一个当前按键的变化状态。进而,再根据每次的变化状态的关系来确定最终的键值。
但是,现有技术在确定键盘键值时,对按键状态的划分不清晰,使得键盘的键值检测实现复杂,从而占用过多MCU资源,导致MCU资源消耗过大。
发明内容
本发明提供一种检测键盘键值的方法及装置,用于解决现有技术中由于案件状态划分不清晰导致的MCU资源消耗过大的问题。
本发明第一方面提供一种检测键盘键值的方法,包括:
执行键盘扫描,根据键盘扫描结果获取当前按键的标识以及所述当前按键的状态,所述当前按键的状态包括按下以及释放;
获取当前键盘检测状态,所述当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态,其中,所述第一键盘检测状态表示空闲状态,所述第二键盘检测状态表示按键按下状态,所述第三键盘检测状态表示按键按下时长状态,所述第四键盘检测状态表示按键释放状态;
根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态。
结合第一方面,在第一方面的第一种可能的实施方式中,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为第一键盘检测状态,则判断所述当前按键的标识是否为有效标识以及所述当前按键的状态是否为按下,若所述当前按键的标识为有效标识并且所述当前按键的状态为按下,则将所述当前按键的标识作为预检测按键标识,将所述当前按键的状态作为预检测按键状态,并且,将所述当前键盘检测状态更新为第二键盘检测状态。
结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为所述第二键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将按键状态计数器的值置为零,并且,将所述当前键盘检测状态更新为所述第三键盘检测状态,其中,所述按键状态计数器用于记录按键按下时长;或者,
若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则将所述当前键盘检测状态更新为第一键盘检测状态。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为所述第三键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将所述按键状态计数器的值加1,作为更新后的按键状态计数器的值,并且,判断所述更新后的按键状态计数器的值是否小于预设的长按类型门限值,若更新后的按键状态计数器的值小于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为短按类型;若更新后的按键状态计数器的值大于或等于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为长按类型,并将所述当前键盘检测状态更新为所述第四键盘检测状态、以及根据所述当前按键的键值信息执行键值信息存储及分发;或者,
若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则判断所述按键状态计数器的值是否小于预设的短按类型最大门限值并且大于预设的短按类型最小门限值,若是,则将所述当前键盘检测状态更新为所述第四键盘检测状态,若否,则将所述当前键盘检测状态更新为所述第一键盘检测状态。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为所述第四键盘检测状态,则判断所述当前按键的标识是否为无效标识以及所述当前按键的状态是否为释放,若所述当前按键的标识为无效标识并且所述当前按键的状态为释放,则根据所述当前按键的键值信息执行键值信息存储及分发,并且,将所述当前键盘检测状态更新为所述第一键盘检测状态,其中,所述当前按键的键值信息包括所述当前按键的标识、所述当前按键的状态以及所述当前按键的按键类型。
结合第一方面的第三种或第四种可能的实施方式,在第一方面的第五种可能的实施方式中,所述根据所述当前按键的键值信息执行键值信息存储及分发,包括:
将所述当前按键的键值信息添加到预设的键值缓冲队列的队尾,其中,所述预设的键值缓冲队列为先入先出FIFO队列。
结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,所述将所述当前按键的键值信息添加到预设的键值缓冲队列的队尾之后,还包括:
读取所述预设的键值缓冲队列中排列在第一位的键值信息,并执行所述排列在第一位的键值信息对应的分发处理;
删除所述键值缓冲队列中所述排列在第一位的所述键值信息。
结合第一方面的第二种、第三种或者第四种可能的实施方式,在第一方面的第七种可能的实施方式中,所述将所述当前键盘检测状态更新为所述第一键盘检测状态之后,还包括:
将所述预检测按键标识以及所述预检测按键状态置为初始无效值。
本发明第二方面提供一种检测键盘键值的装置,包括:
扫描模块,用于执行键盘扫描,根据键盘扫描结果获取当前按键的标识以及所述当前按键的状态,所述当前按键的状态包括按下以及释放;
获取模块,用于获取当前键盘检测状态,所述当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态,其中,所述第一键盘检测状态表示空闲状态,所述第二键盘检测状态表示按键按下状态,所述第三键盘检测状态表示按键按下时长状态,所述第四键盘检测状态表示按键释放状态;
更新模块,用于根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态。
结合第二方面,在第二方面的第一种可能的实施方式中,所述更新模块,具体用于:
若所述当前键盘检测状态为第一键盘检测状态,则判断所述当前按键的标识是否为有效标识以及所述当前按键的状态是否为按下,若所述当前按键的标识为有效标识并且所述当前按键的状态为按下,则将所述当前按键的标识作为预检测按键标识,将所述当前按键的状态作为预检测按键状态,并且,将所述当前键盘检测状态更新为第二键盘检测状态。
结合第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述更新模块,具体包括:
第一判断单元,用于若所述当前键盘检测状态为所述第二键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
第一更新单元,用于若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将按键状态计数器的值置为零,并且,将所述当前键盘检测状态更新为所述第三键盘检测状态,其中,所述按键状态计数器用于记录按键按下时长;或者,若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则将所述当前键盘检测状态更新为第一键盘检测状态。
结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,所述更新模块,具体还包括:
第二判断单元,用于若所述当前键盘检测状态为所述第三键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
第二更新单元,用于若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将所述按键状态计数器的值加1,作为更新后的按键状态计数器的值,并且,判断所述更新后的按键状态计数器的值是否小于预设的长按类型门限值,若更新后的按键状态计数器的值小于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为短按类型;若更新后的按键状态计数器的值大于或等于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为长按类型,并将所述当前键盘检测状态更新为所述第四键盘检测状态、以及根据所述当前按键的键值信息执行键值信息存储及分发;或者,若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则判断所述按键状态计数器的值是否小于预设的短按类型最大门限值并且大于预设的短按类型最小门限值,若是,则将所述当前键盘检测状态更新为所述第四键盘检测状态,若否,则将所述当前键盘检测状态更新为所述第一键盘检测状态。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述更新模块,具体还用于:
若所述当前键盘检测状态为所述第四键盘检测状态,则判断所述当前按键的标识是否为无效标识以及所述当前按键的状态是否为释放,若所述当前按键的标识为无效标识并且所述当前按键的状态为释放,则根据所述当前按键的键值信息执行键值信息存储及分发,并且,将所述当前键盘检测状态更新为所述第一键盘检测状态,其中,所述当前按键的键值信息包括所述当前按键的标识、所述当前按键的状态以及所述当前按键的按键类型。
结合第二方面的第三种或第四种可能的实施方式,在第二方面的第五种可能的实施方式中,所述更新模块具体还用于:
将所述当前按键的键值信息添加到预设的键值缓冲队列的队尾,其中,所述预设的键值缓冲队列为先入先出FIFO队列。
结合第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,所述更新模块具体还包括:
读取单元,用于读取所述预设的键值缓冲队列中排列在第一位的键值信息,并执行所述排列在第一位的键值信息对应的分发处理;
删除单元,用于删除所述键值缓冲队列中所述排列在第一位的所述键值信息。
结合第二方面的第二种、第三种或者第四种可能的实施方式,在第二方面的第七种可能的实施方式中,所述更新模块具体还用于:在将所述当前键盘检测状态更新为所述第一键盘检测状态之后,将所述预检测按键标识以及所述预检测按键状态置为初始无效值。
本发明所提供的检测键盘键值的方法,通过设置第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态来表示按键从按下到最终被识别并且生效的过程,通过这四种状态间的切换更新,不仅能够保证有效按键被正确识别以及无效按键被丢弃,即保证了键盘检测的准确性,并且,在此基础上,由于仅使用了上述四种键盘检测状态,使得对于键盘检测状态的划分清晰简单,从而使得其具体实现变得简单,从而不会占用多余的MCU资源,保证了MCU资源的高效利用。同时,将键值信息的存储分发独立开来,解决了MCU的不同模块间执行速度的差异,提高了MCU的使用率、系统的实时性和模块的兼容性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的检测键盘键值的方法实施例一的流程示意图;
图2为本发明提供的检测键盘键值的方法实施例二的各状态间切换的流程示意图;
图3为本发明提供的检测键盘键值的方法实施例三的状态切换示意图;
图4为本发明提供的检测键盘键值的方法实施例四的FIFO队列的读写操作示意图;
图5为本发明提供的检测键盘键值的方法实施例五的按键消息分发示意图;
图6为本发明提供的检测键盘键值的方法实施例六的键值检测的总体流程示意图;
图7为本发明提供的检测键盘键值的装置实施例一的模块结构图;
图8为本发明提供的检测键盘键值的装置实施例二的模块结构图;
图9为本发明提供的检测键盘键值的装置实施例三的模块结构图;
图10为本发明提供的检测键盘键值的装置实施例四的模块结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的检测键盘键值的方法实施例一的流程示意图,该方法的执行主体为MCU、微处理器或系统级芯片(System on Chip,简称Soc)等,以下都以MCU为例进行说明。如图1所示,该方法包括:
S101、执行键盘扫描,根据键盘扫描结果获取当前按键的标识以及当前按键的状态,其中,当前按键的状态包括按下以及释放。
具体地,可以通过MCU的硬件定时器或者嵌入式操作系统的软件定时器按照预设频率,周期性地执行键盘扫描,扫描周期一般可以设置为10ms至20ms。
执行键盘扫描,即是获取键盘中各按键的使用状态,包括按按键的标识和按键的状态。其中,按键的标识即表明当前按键是哪个按键,按键的标识优选地可以使用按键的物理标识,即物理ID作为按键标识。比如合法的按键都会有一个合法的ID,例如处于1-100这个范围内,如果某次扫描键盘所获取到的按键的ID不在这个范围内,则该按键的ID为不合法的ID,则说明该按键是无效的按键。另外,按键的状态表示当前按键是被按下还是被释放。
S102、获取当前键盘检测状态,当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态。其中,第一键盘检测状态表示空闲状态,第二键盘检测状态表示按键按下状态,第三键盘检测状态表示按键按下时长状态,第四键盘检测状态表示按键释放状态。
上述四种键盘检测状态表示了键盘操作的过程中,按键从开始按下到最终被识别并生效的状态。在不同的状态下,MCU会进行不同的判断和操作。
具体地,上述第一键盘检测状态表示空闲状态,在这一状态下,键盘中的按键未被操作。上述第二键盘检测状态表示按键按下状态,即,一旦扫描到按键被按下,就进入第二键盘检测状态。上述第三键盘检测状态表示按键按下时长状态,具体来说,当键盘当前已经处于第二键盘检测状态,并且键盘扫描结果显示按键依然被按下,则说明当前按键的被按下的状态稳定,按键不处于抖动状态,则可以将键盘状态切换到第三键盘检测状态。即第二键盘检测状态和第三键盘检测状态的切换表示了键盘去抖动的过程。上述第四键盘检测状态表示按键释放状态,即当按键被按下后又被释放的状态。
MCU在每次完成键盘扫描后都会获取当前的键盘检测状态,键盘检测状态信息预先被存储在MCU内,当键盘检测状态信息发生变化时,MCU会将其更新为新的键盘检测状态以供下次键盘扫描完成后使用。
S103、根据上述当前键盘检测状态以及上述当前按键的状态执行当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将当前键盘检测状态更新为新的键盘检测状态。
根据不同的键盘检测状态以及不同的按键状态,MCU会执行不同的判断和操作,并根据判断结果和操作结果进行键盘检测状态的切换。如果用户正常按下了某些按键,则键盘检测状态会按照正常的顺序从上述第一键盘检测状态不断更新到上述第四检测状态,并最终生成有效的键值信息。否则,键盘检测状态不会更新到上述第四检测状态,也不会生成有效的键值信息。
本实施例中,通过设置第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态来表示按键从按下到最终被识别并且生效的过程,通过这四种状态间的切换更新,不仅能够保证有效按键被正确识别以及无效按键被丢弃,即保证了键盘检测的准确性,并且,在此基础上,由于仅使用了上述四种键盘检测状态,使得对于键盘检测状态的划分清晰简单,从而使得其具体实现变得简单,从而不会占用多余的MCU资源,保证了MCU资源的高效利用。
图2为本发明提供的检测键盘键值的方法实施例二的各状态间切换的流程示意图,如图2所示,在每次键盘扫描结束后,MCU都会根据当前键盘检测状态执行相应的判断和操作,并根据判断结果和操作结果进行当前键盘检测状态的更新。其中,S0表示第一键盘检测状态,S1表示第二键盘检测状态,S2表示第三键盘检测状态,S3表示第四键盘检测状态。每次键盘扫描结束后仅会执行下述步骤1-步骤4中的一种。具体过程为:
步骤1、判断当前键盘检测状态是否为第一键盘检测状态S0,若当前键盘检测状态为S0,则执行下述子步骤:
子步骤1.1、判断当前按键的标识是否为有效标识以及当前按键的状态是否为按下,若当前按键的标识为有效标识并且当前按键的状态为按下,则继续执行以下子步骤。
子步骤1.2、将当前按键的标识作为预检测按键标识。
子步骤1.3、将当前按键的状态作为预检测按键状态。
子步骤1.4、将当前键盘检测状态更新为第二键盘检测状态S1。
执行完上述子步骤1.4之后则退出本次扫描后的处理,等待下一次键盘扫描,当下一次键盘扫描到有效键值时再进行下一次的状态处理。
其中,判断当前按键的标识是否为有效标识可以使用上述实施例一所述的方法,判断当前按键的状态是否为按下可以使用现有技术进行判断,此处不再赘述。
一旦按键被按下,则将按键标识和按键状态值赋予预检测按键标识和预检测按键状态,后续完成键盘扫描后会首先判断本次扫描的按键是否和预检测按键标识和预检测按键状态相同,即预检测按键标识和预检测按键状态用来作为判断有效按键的基准。
步骤2、判断当前键盘检测状态是否为第二键盘检测状态S1,若当前键盘检测状态为S1,则执行下述子步骤:
子步骤2.1、判断当前按键的标识是否与上述预检测按键标识相同以及当前按键的状态是否与上述预检测按键状态相同。若当前按键的标识与上述预检测按键标识相同并且当前按键的状态与上述预检测按键状态相同,则继续执行以下子步骤。
子步骤2.2、将按键状态计数器的值置为零。
子步骤2.3、将当前键盘检测状态更新为第三键盘检测状态S2,其中,所述按键状态计数器用于记录按键按下时长。
执行完上述子步骤2.3之后则退出本次扫描后的处理,等待下一次键盘扫描,当下一次键盘扫描到有效键值时再进行下一次的状态处理。
在子步骤2.1中若判断出当前按键的标识与上述预检测按键标识不同,和/或,当前按键的状态与上述预检测按键状态不同,则执行步骤5,将当前键盘检测状态更新为第一键盘检测状态S0。
上述按键状态计数器用于记录按键按下的时长,对于一次按键,其按下的时间必须处于一个合理的范围,才能说明其是一个有效按键,如果一次按键的按下时间保持过短,那么就不能算一个有效按键。因此,使用上述按键状态计数器来记录按键按下的时长并作为后续判断是否为有效按键的一个条件。
当MCU判断出本次按键的标识和状态与前一次扫描时所记录的按键标识和状态相同时,则说明按键状态稳定,可以进行下一步的判断,即完成了去抖动的过程。
当MCU判断出本次按键的标识和状态与前一次扫描时所记录的按键标识和状态不同时,则说明键盘抖动,则不再进行下一步判断,而是直接将当前键盘检测状态恢复为初始的空闲状态,从头再开始进行扫描和检测。
步骤3、判断当前键盘检测状态是否为第三键盘检测状态S2,若当前键盘检测状态为S2,则执行下述子步骤:
子步骤3.1、判断当前按键的标识是否与上述预检测按键标识相同以及当前按键的状态是否与上述预检测按键状态相同。若当前按键的标识与上述预检测按键标识相同并且当前按键的状态与上述预检测按键状态相同,则继续下述子步骤3.2,否则执行子步骤3.9。
子步骤3.2、将上述按键状态计数器的值加1,作为更新后的按键状态计数器的值。
子步骤3.3、判断上述更新后的按键状态计数器的值是否小于预设的长按类型门限值,若更新后的按键状态计数器的值小于预设的长按类型门限值,则继续执行子步骤3.4,否则执行子步骤3.6。
子步骤3.4、将当前按键的按键类型设置为短按类型。
子步骤3.5、将当前键盘检测状态更新为S2。
执行完上述子步骤3.5之后则退出本次扫描后的处理,等待下一次键盘扫描,当下一次键盘扫描到有效键值时再进行下一次的状态处理。
子步骤3.6、将当前按键的按键类型设置为长按类型,
子步骤3.7、将当前键盘检测状态更新为第四键盘检测状态S3。
子步骤3.8、根据当前按键的键值信息执行键值信息存储及分发。
执行完上述子步骤3.8之后则退出本次扫描后的处理,等待下一次键盘扫描,当下一次键盘扫描到有效键值时再进行下一次的状态处理。
子步骤3.9、判断上述按键状态计数器的值是否小于预设的短按类型最大门限值并且大于预设的短按类型最小门限值,若是,则执行子步骤3.10,否则执行步骤5,将当前键盘检测状态更新为第一键盘检测状态S0。
子步骤3.10、将当前键盘检测状态更新为第四键盘检测状态S3。
执行完上述子步骤3.10之后则退出本次扫描后的处理,等待下一次键盘扫描,当下一次键盘扫描到有效键值时再进行下一次的状态处理。
如前所述,上述按键状态计数器用于记录按键按下的时长,使用上述按键状态计数器作为后续判断是否为有效按键的一个条件。在键盘处于S2状态时,根据按键状态计数器的值来判断当前按键是短按类型还是长按类型,如果是长按类型,则认为按键有效,直接进行键值信息的存储和分发。如果是短按类型,则需要在按键被释放后再进行键值信息的存储和分发。
如果S2状态下的判断结果不满足短按类型或长按类型,则说明本次按键是无效按键,则不再进行下一步判断,而是直接将当前键盘检测状态恢复为初始的空闲状态,从头再开始进行扫描和检测。
步骤4、判断当前键盘检测状态是否为第四键盘检测状态S3,若当前键盘检测状态为S3,则执行下述子步骤:
子步骤4.1、判断当前按键的标识是否为无效标识以及当前按键的状态是否为释放,若当前按键的标识为无效标识并且当前按键的状态为释放,则继续执行下述子步骤4.2。
子步骤4.2、根据当前按键的键值信息执行键值信息存储及分发,并且,继续执行步骤5,将当前键盘检测状态更新为第一键盘检测状态S0,其中,当前按键的键值信息包括当前按键的标识、当前按键的状态以及当前按键的按键类型。
S3状态是针对短按类型的按键,在确定出其是一个有效的短按类型后,再判断其是否已经被释放,如果被释放,则说明本次按键已经正常完成,则进行键值信息的存储和分发。
并且,在完成信息的存储和分发时,也要将当前键盘检测状态恢复为S0状态,以便开始新一轮的键盘检测。
需要说明的是,进行存储和分发的键值信息必须包括按键的标识、按键的状态和按键的类型,其中,按键类型包括短按类型和长按类型。
前述各实施例中,在将当前键盘检测状态更新为第一键盘检测状态时,还需要将上述预检测按键标识以及上述预检测按键状态置为初始无效值,以保证下一轮键盘检测时不会使用错误的预检测按键标识以及预检测按键状态信息。
图3为本发明提供的检测键盘键值的方法实施例三的状态切换示意图,如图3所示,S0为空闲状态,后续的状态S1、S2和S3都可以向后切换回S0状态,但是各状态向前只能切换到自身的下一个状态,例如,S0只能向前切换到S1状态,S1只能向前切换到S2状态,而不能向前切换到S3状态。
另一实施例中,MCU在进行键值信息的存储分发时,会通过预先设置在MCU中的键值缓冲队列来存储键值信息,该键值缓冲队列为先入先出(first in,first out,简称FIFO)队列。当产生一个当前按键的键值信息后,MCU会将当前按键的键值信息添加到该键值缓冲队列的队尾。
图4为本发明提供的检测键盘键值的方法实施例四的FIFO队列的读写操作示意图,如图4所示,键值信息写入时会增加到FIFO队列的队尾,键值信息读取时会从FIFO队列的队首读取。
另一实施例中,在键值信息被存储到FIFO队列之后,会通过MCU中的消息分发模块来进行键值消息的读取和分发。
具体地,在键值信息被存储到FIFO队列时,MCU会向消息分发模块发出指示,指示有新的键值信息生成,按键分发模块接收到该指示后,会在处理能力允许的情况下,读取FIFO队列中排列在第一位的键值信息,并执行排列在第一位的键值信息对应的分发处理,并且,删除FIFO队列中排列在第一位的键值信息。按键分发模块具体的分发处理过程可以参考现有技术,此处不再赘述。
图5为本发明提供的检测键盘键值的方法实施例五的按键消息分发示意图,参照图5,按键分发模块按照FIFO队列的顺序来逐个分发键值信息。
上述两个实施例中,FIFO队列专用于键值信息的存储,按键分发模块专用于键值信息的分发处理,当MCU生成有效的键值信息后,将键值信息存储于FIFO队列中即可处理其他任务,而不像现有技术一样等到键值响应后才可以处理其他任务。按键分发模块在处理能力允许时再从FIFO队列中读取键值信息并进行分发处理。即将键值信息的存储分发独立开来,从而解决了现有技术中键值输出和键值响应属于硬链接、兼容性差、实时性差的问题,解决了MCU的不同模块间执行速度的差异,提高了MCU的使用率、系统的实时性和模块的兼容性。
图6为本发明提供的检测键盘键值的方法实施例六的键值检测的总体流程示意图,如图6所示,键值检测的总体流程为:
S201、执行按键扫描。
S202、根据键盘扫描结果及当前键盘检测状态进行状态切换。
S203、将有效的键值信息存储在键值缓冲队列即FIFO队列中。
S204、按键分发模块进行键值信息分发。
具体的执行过程可以参照前述实施例,此处不再赘述。
图7为本发明提供的检测键盘键值的装置实施例一的模块结构图,如图7所示,该装置包括:
扫描模块701,用于执行键盘扫描,根据键盘扫描结果获取当前按键的标识以及当前按键的状态,当前按键的状态包括按下以及释放。
获取模块702,用于获取当前键盘检测状态,当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态,其中,第一键盘检测状态表示空闲状态,第二键盘检测状态表示按键按下状态,第三键盘检测状态表示按键按下时长状态,第四键盘检测状态表示按键释放状态。
更新模块703,用于根据当前键盘检测状态以及当前按键的状态执行当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将当前键盘检测状态更新为新的键盘检测状态。
该装置用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
另一实施例中,更新模块703具体用于:
若当前键盘检测状态为第一键盘检测状态,则判断当前按键的标识是否为有效标识以及当前按键的状态是否为按下,若当前按键的标识为有效标识并且当前按键的状态为按下,则将当前按键的标识作为预检测按键标识,将当前按键的状态作为预检测按键状态,并且,将当前键盘检测状态更新为第二键盘检测状态。
图8为本发明提供的检测键盘键值的装置实施例二的模块结构图,如图8所示,更新模块703具体包括:
第一判断单元7031,用于若当前键盘检测状态为第二键盘检测状态,则判断当前按键的标识是否与上述预检测按键标识相同以及当前按键的状态是否与上述预检测按键状态相同。
第一更新单元7032,用于若当前按键的标识与上述预检测按键标识相同并且当前按键的状态与上述预检测按键状态相同,则将按键状态计数器的值置为零,并且,将当前键盘检测状态更新为第三键盘检测状态,其中,按键状态计数器用于记录按键按下时长;或者,若当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则将所述当前键盘检测状态更新为第一键盘检测状态。
图9为本发明提供的检测键盘键值的装置实施例三的模块结构图,如图9所示,更新模块703具体还包括:
第二判断单元7033,用于若当前键盘检测状态为第三键盘检测状态,则判断当前按键的标识是否与上述预检测按键标识相同以及当前按键的状态是否与上述预检测按键状态相同。
第二更新单元7034,用于若当前按键的标识与上述预检测按键标识相同并且当前按键的状态与上述预检测按键状态相同,则将按键状态计数器的值加1,作为更新后的按键状态计数器的值,并且,判断更新后的按键状态计数器的值是否小于预设的长按类型门限值,若更新后的按键状态计数器的值小于预设的长按类型门限值,则将当前按键的按键类型设置为短按类型;若更新后的按键状态计数器的值大于或等于预设的长按类型门限值,则将当前按键的按键类型设置为长按类型,并将当前键盘检测状态更新为第四键盘检测状态、以及根据当前按键的键值信息执行键值信息存储及分发;或者,若当前按键的标识与上述预检测按键标识不同,和/或,当前按键的状态与上述预检测按键状态不同,则判断按键状态计数器的值是否小于预设的短按类型最大门限值并且大于预设的短按类型最小门限值,若是,则将当前键盘检测状态更新为第四键盘检测状态,若否,则将当前键盘检测状态更新为第一键盘检测状态。
另一实施例中,更新模块703具体还用于:
若当前键盘检测状态为第四键盘检测状态,则判断当前按键的标识是否为无效标识以及当前按键的状态是否为释放,若当前按键的标识为无效标识并且当前按键的状态为释放,则根据当前按键的键值信息执行键值信息存储及分发,并且,将当前键盘检测状态更新为第一键盘检测状态,其中,当前按键的键值信息包括当前按键的标识、当前按键的状态以及当前按键的按键类型。
进一步地,更新模块703具体还用于:
将当前按键的键值信息添加到预设的键值缓冲队列的队尾,其中,预设的键值缓冲队列为先入先出FIFO队列。
图10为本发明提供的检测键盘键值的装置实施例四的模块结构图,如图10所示,更新模块703具体还包括:
读取单元7035,用于读取预设的键值缓冲队列中排列在第一位的键值信息,并执行排列在第一位的键值信息对应的分发处理。
删除单元7036,用于删除键值缓冲队列中排列在第一位的所述键值信息。
进一步地,更新模块703具体还用于:
在将当前键盘检测状态更新为第一键盘检测状态之后,将预检测按键标识以及预检测按键状态置为初始无效值。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种检测键盘键值的方法,其特征在于,包括:
执行键盘扫描,根据键盘扫描结果获取当前按键的标识以及所述当前按键的状态,所述当前按键的状态包括按下以及释放;
获取当前键盘检测状态,所述当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态,其中,所述第一键盘检测状态表示空闲状态,所述第二键盘检测状态表示按键按下状态,所述第三键盘检测状态表示按键按下时长状态,所述第四键盘检测状态表示按键释放状态;
根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态;
所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为第一键盘检测状态,则判断所述当前按键的标识是否为有效标识以及所述当前按键的状态是否为按下,若所述当前按键的标识为有效标识并且所述当前按键的状态为按下,则将所述当前按键的标识作为预检测按键标识,将所述当前按键的状态作为预检测按键状态,并且,将所述当前键盘检测状态更新为第二键盘检测状态。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为所述第二键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将按键状态计数器的值置为零,并且,将所述当前键盘检测状态更新为所述第三键盘检测状态,其中,所述按键状态计数器用于记录按键按下时长;或者,
若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则将所述当前键盘检测状态更新为第一键盘检测状态。
3.根据权利要求2所述的方法,其特征在于,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为所述第三键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将所述按键状态计数器的值加1,作为更新后的按键状态计数器的值,并且,判断所述更新后的按键状态计数器的值是否小于预设的长按类型门限值,若更新后的按键状态计数器的值小于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为短按类型;若更新后的按键状态计数器的值大于或等于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为长按类型,并将所述当前键盘检测状态更新为所述第四键盘检测状态、以及根据所述当前按键的键值信息执行键值信息存储及分发;或者,
若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则判断所述按键状态计数器的值是否小于预设的短按类型最大门限值并且大于预设的短按类型最小门限值,若是,则将所述当前键盘检测状态更新为所述第四键盘检测状态,若否,则将所述当前键盘检测状态更新为所述第一键盘检测状态。
4.根据权利要求3所述的方法,其特征在于,所述根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态,包括:
若所述当前键盘检测状态为所述第四键盘检测状态,则判断所述当前按键的标识是否为无效标识以及所述当前按键的状态是否为释放,若所述当前按键的标识为无效标识并且所述当前按键的状态为释放,则根据所述当前按键的键值信息执行键值信息存储及分发,并且,将所述当前键盘检测状态更新为所述第一键盘检测状态,其中,所述当前按键的键值信息包括所述当前按键的标识、所述当前按键的状态以及所述当前按键的按键类型。
5.根据权利要求3或4所述的方法,其特征在于,所述根据所述当前按键的键值信息执行键值信息存储及分发,包括:
将所述当前按键的键值信息添加到预设的键值缓冲队列的队尾,其中,所述预设的键值缓冲队列为先入先出FIFO队列。
6.根据权利要求5所述的方法,其特征在于,所述将所述当前按键的键值信息添加到预设的键值缓冲队列的队尾之后,还包括:
读取所述预设的键值缓冲队列中排列在第一位的键值信息,并执行所述排列在第一位的键值信息对应的分发处理;
删除所述键值缓冲队列中所述排列在第一位的所述键值信息。
7.根据权利要求2、3或4所述的方法,其特征在于,所述将所述当前键盘检测状态更新为所述第一键盘检测状态之后,还包括:
将所述预检测按键标识以及所述预检测按键状态置为初始无效值。
8.一种检测键盘键值的装置,其特征在于,包括:
扫描模块,用于执行键盘扫描,根据键盘扫描结果获取当前按键的标识以及所述当前按键的状态,所述当前按键的状态包括按下以及释放;
获取模块,用于获取当前键盘检测状态,所述当前键盘检测状态包括下述任一种:第一键盘检测状态、第二键盘检测状态、第三键盘检测状态以及第四键盘检测状态,其中,所述第一键盘检测状态表示空闲状态,所述第二键盘检测状态表示按键按下状态,所述第三键盘检测状态表示按键按下时长状态,所述第四键盘检测状态表示按键释放状态;
更新模块,用于根据所述当前键盘检测状态以及所述当前按键的状态执行所述当前键盘检测状态对应的操作,并在操作结果满足状态更新条件时将所述当前键盘检测状态更新为新的键盘检测状态;
所述更新模块,具体用于:
若所述当前键盘检测状态为第一键盘检测状态,则判断所述当前按键的标识是否为有效标识以及所述当前按键的状态是否为按下,若所述当前按键的标识为有效标识并且所述当前按键的状态为按下,则将所述当前按键的标识作为预检测按键标识,将所述当前按键的状态作为预检测按键状态,并且,将所述当前键盘检测状态更新为第二键盘检测状态。
9.根据权利要求8所述的装置,其特征在于,所述更新模块,具体包括:
第一判断单元,用于若所述当前键盘检测状态为所述第二键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
第一更新单元,用于若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将按键状态计数器的值置为零,并且,将所述当前键盘检测状态更新为所述第三键盘检测状态,其中,所述按键状态计数器用于记录按键按下时长;或者,若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则将所述当前键盘检测状态更新为第一键盘检测状态。
10.根据权利要求9所述的装置,其特征在于,所述更新模块,具体还包括:
第二判断单元,用于若所述当前键盘检测状态为所述第三键盘检测状态,则判断所述当前按键的标识是否与所述预检测按键标识相同以及所述当前按键的状态是否与所述预检测按键状态相同;
第二更新单元,用于若所述当前按键的标识与所述预检测按键标识相同并且所述当前按键的状态与所述预检测按键状态相同,则将所述按键状态计数器的值加1,作为更新后的按键状态计数器的值,并且,判断所述更新后的按键状态计数器的值是否小于预设的长按类型门限值,若更新后的按键状态计数器的值小于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为短按类型;若更新后的按键状态计数器的值大于或等于所述预设的长按类型门限值,则将所述当前按键的按键类型设置为长按类型,并将所述当前键盘检测状态更新为所述第四键盘检测状态、以及根据所述当前按键的键值信息执行键值信息存储及分发;或者,若所述当前按键的标识与所述预检测按键标识不同,和/或,所述当前按键的状态与所述预检测按键状态不同,则判断所述按键状态计数器的值是否小于预设的短按类型最大门限值并且大于预设的短按类型最小门限值,若是,则将所述当前键盘检测状态更新为所述第四键盘检测状态,若否,则将所述当前键盘检测状态更新为所述第一键盘检测状态。
11.根据权利要求10所述的装置,其特征在于,所述更新模块,具体还用于:
若所述当前键盘检测状态为所述第四键盘检测状态,则判断所述当前按键的标识是否为无效标识以及所述当前按键的状态是否为释放,若所述当前按键的标识为无效标识并且所述当前按键的状态为释放,则根据所述当前按键的键值信息执行键值信息存储及分发,并且,将所述当前键盘检测状态更新为所述第一键盘检测状态,其中,所述当前按键的键值信息包括所述当前按键的标识、所述当前按键的状态以及所述当前按键的按键类型。
12.根据权利要求10或11所述的装置,其特征在于,所述更新模块具体还用于:
将所述当前按键的键值信息添加到预设的键值缓冲队列的队尾,其中,所述预设的键值缓冲队列为先入先出FIFO队列。
13.根据权利要求12所述的装置,其特征在于,所述更新模块具体还包括:
读取单元,用于读取所述预设的键值缓冲队列中排列在第一位的键值信息,并执行所述排列在第一位的键值信息对应的分发处理;
删除单元,用于删除所述键值缓冲队列中所述排列在第一位的所述键值信息。
14.根据权利要求9、10或11所述的装置,其特征在于,所述更新模块具体还用于:在将所述当前键盘检测状态更新为所述第一键盘检测状态之后,将所述预检测按键标识以及所述预检测按键状态置为初始无效值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511000814.6A CN105634503B (zh) | 2015-12-28 | 2015-12-28 | 检测键盘键值的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511000814.6A CN105634503B (zh) | 2015-12-28 | 2015-12-28 | 检测键盘键值的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634503A CN105634503A (zh) | 2016-06-01 |
CN105634503B true CN105634503B (zh) | 2018-07-31 |
Family
ID=56049112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511000814.6A Active CN105634503B (zh) | 2015-12-28 | 2015-12-28 | 检测键盘键值的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634503B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107976624B (zh) * | 2016-10-24 | 2020-10-09 | 佛山市顺德区美的电热电器制造有限公司 | 按键状态的检测方法及装置 |
CN106781842B (zh) * | 2016-11-29 | 2020-05-19 | 大连佳音科技有限公司 | 一种钢琴按键动作自适应识别系统及方法 |
CN108270447B (zh) * | 2016-12-30 | 2024-05-24 | 北京普源精电科技有限公司 | 键盘消抖方法、扫描控制器、主控制器及测量仪器 |
CN109814735B (zh) * | 2019-01-25 | 2023-04-07 | 超越科技股份有限公司 | 按键弹起后的键值发送处理方法及系统 |
CN114257249A (zh) * | 2021-12-23 | 2022-03-29 | 西安芯海微电子科技有限公司 | 键盘扫描电路、键盘按键识别方法、芯片和键盘 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953334A (zh) * | 2006-11-17 | 2007-04-25 | 北京中星微电子有限公司 | 一种扫描键盘的方法和系统 |
CN101924563A (zh) * | 2009-06-16 | 2010-12-22 | 厦门敏讯信息技术股份有限公司 | 一种键盘扫描方法 |
CN102508556A (zh) * | 2011-10-31 | 2012-06-20 | 深圳市元征软件开发有限公司 | 键盘扫描的实现方法 |
CN103034336A (zh) * | 2011-09-29 | 2013-04-10 | 无锡华润矽科微电子有限公司 | 键盘矩阵及其按键扫描方法 |
CN103226391A (zh) * | 2013-05-22 | 2013-07-31 | 湖南工业大学 | 一种独立式键盘的扫描定位方法 |
-
2015
- 2015-12-28 CN CN201511000814.6A patent/CN105634503B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953334A (zh) * | 2006-11-17 | 2007-04-25 | 北京中星微电子有限公司 | 一种扫描键盘的方法和系统 |
CN101924563A (zh) * | 2009-06-16 | 2010-12-22 | 厦门敏讯信息技术股份有限公司 | 一种键盘扫描方法 |
CN103034336A (zh) * | 2011-09-29 | 2013-04-10 | 无锡华润矽科微电子有限公司 | 键盘矩阵及其按键扫描方法 |
CN102508556A (zh) * | 2011-10-31 | 2012-06-20 | 深圳市元征软件开发有限公司 | 键盘扫描的实现方法 |
CN103226391A (zh) * | 2013-05-22 | 2013-07-31 | 湖南工业大学 | 一种独立式键盘的扫描定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105634503A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105634503B (zh) | 检测键盘键值的方法及装置 | |
CN109784930B (zh) | 一种区块链交易数据的处理方法、装置、电子设备及介质 | |
US20190258514A1 (en) | I/O Request Scheduling Method and Apparatus | |
CN107273130B (zh) | 加速界面绘制的方法、装置和终端 | |
EP3091434B1 (en) | Chip starting method, multi-core processor chip and storage medium | |
CN109918141A (zh) | 线程执行方法、装置、终端及存储介质 | |
EP3425491B1 (en) | Data processing method and apparatus | |
CN108132735B (zh) | 终端与应用控制方法 | |
WO2019237891A1 (zh) | 一种内存优化方法、装置、可读存储介质及移动终端 | |
JP2006351004A (ja) | 携帯端末機のメモリ管理方法 | |
CN106855826B (zh) | 一种后台应用程序的控制方法及装置 | |
CN110806925B (zh) | 音频播放方法及设备 | |
CN106095832B (zh) | 分布式并行数据处理方法以及装置 | |
CN114238516A (zh) | 数据同步方法、系统及计算机可读介质 | |
CN113190427A (zh) | 卡顿监控方法、装置、电子设备及存储介质 | |
JP2015095219A (ja) | 情報処理装置、情報処理方法および記憶媒体 | |
CN113094305A (zh) | 一种异步通信处理方法、装置和存储介质 | |
US20170091206A1 (en) | Information Processing Method and Electronic Apparatus | |
CN106874103A (zh) | 心跳实现方法及装置 | |
CN111124519B (zh) | 基于输入响应优化安卓应用程序启动速度的方法及系统 | |
CN115794446B (zh) | 一种消息处理方法、装置、电子设备和存储介质 | |
CN108762983A (zh) | 多媒体数据恢复方法及装置 | |
TW201413585A (zh) | 開機之映像檔之大小縮減方法及運算裝置 | |
WO2020224218A1 (zh) | 基于hbase的数据写入方法、系统、装置及可读存储介质 | |
EP4354293A1 (en) | Detection method and apparatus, and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |