CH582M,模拟键盘、鼠标程序

从官方的CH583_EVT例程里面可以看到如下代码:

    while(1)
    {
        mDelaymS(1000);
        //鼠标左键
        DevHIDMouseReport(0x01);
        mDelaymS(100);
        DevHIDMouseReport(0x00);
        mDelaymS(200);

        //键盘按键“wch”
        mDelaymS(1000);
        DevHIDKeyReport(0x1A);
        mDelaymS(100);
        DevHIDKeyReport(0x00);
        mDelaymS(200);
        DevHIDKeyReport(0x06);
        mDelaymS(100);
        DevHIDKeyReport(0x00);
        mDelaymS(200);
        DevHIDKeyReport(0x0B);
        mDelaymS(100);
        DevHIDKeyReport(0x00);
    }

上述代码验证无问题。

但是,当我将中间mDelaymS函数删除,或者减少为mDelaymS(2)时则会出问题,具体体现为丢包。

所以,请问在wch的方案中,这个mDelaymS间隔最小是多少,这是芯片限制的呢还是USB HID的规定?

假设一个人敲键盘速度足够快,是否代表着会丢包。

查询了相关文档。

低速USB HID设备10ms以内只能处理一笔事务。

全速USB HID设备1ms以内只能处理一笔事务。

对于我提的问题。需要保证两个USB HID报文之间的间隔10ms。

但是手册上有讲,CH582是全速USB,请问该如何进行初始化。


只有登录才能回复,可以选择微信账号登录