求助 : 用Arduino來模擬電腦鍵盤無法在MS-DOS下使用
依照Arduino精華內的Arduino学习笔记A11 - Arduino模拟电脑键盘(基于AVR-USB的USB-HID设备)這篇來製作,在Windows 7及CentOS下皆可正常使用,唯獨在MS-DOS下完全不行。
(因為某些程式的因素必須使用MS-DOS的環境)
有人遇過這樣的狀況嗎??這是原本library的限制還是有其他的問題??
求大神協助~~謝謝~~ 好像是 usb键盘有两种模式,其中一个是post一个是os。
回头我查一下资料。 CMOS BIOS里面 USB Legacy 设置为 Enable 了吗?
\UsbKeyboard.h 中提到了不支持 Boot Protocol。 我也不知道为什么。不支持这个的话 post中是肯定进不了setup的,估计dos也一样。
/* We use a simplifed keyboard report descriptor which does not support the
* boot protocol. We don't allow setting status LEDs and but we do allow
* simultaneous key presses.
* The report descriptor has been created with usb.org's "HID Descriptor Tool"
* which can be downloaded from http://www.usb.org/developers/hidpage/.
* Redundant entries (such as LOGICAL_MINIMUM and USAGE_PAGE) have been omitted
* for the second INPUT item.
*/
关于这个地方还有资料描述如下
三、与USB HID设备有关的描述符
HID设备的描述符除了5个USB的标准描述符(设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符,见百合电子工作室的另一篇文章:USB开发基础--USB命令(请求)和USB描述符)外,还包括3个HID设备类特定描述符:HID描述符、报告描述符、实体描述符。
除了HID的三个特定描述符组成对HID设备的解释外,5个标准描述符中与HID设备有关的部分有:
设备描述符中bDeviceClass、bDeviceSubClass和bDeviceProtocol三个字段的值必须为零。
接口描述符中bInterfaceClass的值必须为0x03,bInterfaceSubClass的值为0或1,为1表示HID设备符是一个启动设备(Boot Device,一般对PC机而言才有意义,意思是BIOS启动时能识别并使用您的HID设备,且只有标准鼠标或键盘类设备才能成为Boot Device。如果为0则只有在操作系统启动后才能识别并使用您的HID设备)。 我使用一般的鍵盤在MS-DOS下操作是正常的,不像是BIOS設定的問題。
在Arduino.cc上也有人遇到相同的問題。
http://forum.arduino.cc/index.php?topic=239150.0
上面是說可能要修改HID.cpp
不過要怎麼修改我還在嘗試中....
页:
[1]