从官方的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的规定?
假设一个人敲键盘速度足够快,是否代表着会丢包。
热门产品 :
CH339: 7端口多功能USB HUB控制器芯片