V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sivacohan
V2EX  ›  问与答

Windows 键盘处理键盘输入的速度有多快?

  •  
  •   sivacohan · 2022-12-23 16:13:14 +08:00 · 819 次点击
    这是一个创建于 726 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我尝试用 Arduino Leonardo 来模拟成键盘鼠标,在测试的过程中发现。
    如果在循环中不加入 delay ,就会导致 Windows 的 Keyboard buffer 被写满。
    而在每次 KeyPress 之后增加 100ms 延迟后,情况有所好转。

    我的问题是:
    1. Windows 10 有关于 Keyboard Interrupt 的相关文档吗?我想了解一下 Windows 的处理流程。
    2. Windows 系统下,HID 输入的极限速度是多快?
    5 条回复    2022-12-26 13:13:10 +08:00
    kokutou
        1
    kokutou  
       2022-12-23 16:46:29 +08:00
    参考人的最快打字速度呗。
    cpstar
        2
    cpstar  
       2022-12-23 17:01:03 +08:00
    我觉得是不是换成 linux 看看什么样子,然后再来判定到底是 OS 的问题、driver 的问题,还是什么问题。
    Eiden
        3
    Eiden  
       2022-12-25 16:28:12 +08:00
    usb hid 是轮询的, 这个轮询周期跟键盘硬件(usb 接口速率)有关系, 慢的 16ms, 快的 1ms, 对于 atmega 32u4(usb 1.1 fs)来说应该是工作在 1000hz 轮询周期的
    sivacohan
        4
    sivacohan  
    OP
       2022-12-25 23:30:30 +08:00
    @Eiden 这是我现在不太理解的地方。
    从系统的表现上来看,似乎是 keypress 的事件被放到了一个队列里面,而后 windows 再慢慢消费。
    具体表现是,当系统看起来有点卡且不相应键盘事件后,拔下 Leonardo ,windows 还会在 vscode 里面继续写内容约 5~8 秒。
    giaodadi
        5
    giaodadi  
       2022-12-26 13:13:10 +08:00
    有 4000hz 的键盘
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3498 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:50 · PVG 12:50 · LAX 20:50 · JFK 23:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.