极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11076|回复: 4

求助 : 用Arduino來模擬電腦鍵盤無法在MS-DOS下使用

[复制链接]
发表于 2015-1-20 14:29:26 | 显示全部楼层 |阅读模式
依照Arduino精華內的Arduino学习笔记A11 - Arduino模拟电脑键盘(基于AVR-USB的USB-HID设备)這篇來製作,
在Windows 7及CentOS下皆可正常使用,唯獨在MS-DOS下完全不行。
(因為某些程式的因素  必須使用MS-DOS的環境)
有人遇過這樣的狀況嗎??  這是原本library的限制還是有其他的問題??
求大神協助~~謝謝~~
回复

使用道具 举报

发表于 2015-1-20 15:21:36 | 显示全部楼层
好像是 usb键盘有两种模式,其中一个是post一个是os。

回头我查一下资料。
回复 支持 反对

使用道具 举报

发表于 2015-1-20 17:32:33 | 显示全部楼层
CMOS BIOS里面 USB Legacy 设置为 Enable 了吗?
回复 支持 反对

使用道具 举报

发表于 2015-1-20 18:13:44 | 显示全部楼层
\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设备)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-20 18:18:04 | 显示全部楼层
我使用一般的鍵盤在MS-DOS下操作是正常的,不像是BIOS設定的問題。

在Arduino.cc上也有人遇到相同的問題。
http://forum.arduino.cc/index.php?topic=239150.0
上面是說可能要修改HID.cpp
不過要怎麼修改我還在嘗試中....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-11 03:57 , Processed in 0.039620 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表