阅读:1422回复:5
有做hid社备和驱动的朋友进来聊聊!
我想做一个HID的非键盘、鼠标设备,用来收发不定长的数据,不知道报告描述符应怎样定义,驱动怎样控制set_report和get_report。是不是hid只能做成键盘鼠标那样的设备?
|
|
沙发#
发布于:2005-01-26 11:24
我也是做一个类似的东西。仅是为了HID的内置驱动。
昨天我还问过你呢。 不过我比较lucky, 今天我的设备已经让W2K 认了。没有问号。hehe 我用以下的REPORT DESCRIPTOR: 0x05, 0x0C,// USAGE_PAGE (Consumer Devices) 0x09, 0x01,// USAGE (Consumer Control) 0xA1, 0x01,// COLLECTION (Application) 0x15, 0x00,// LOGICAL_MINIMUM (0) 0x25, 0x01,// LOGICAL_MAXIMUM (1) 0x09, 0xE2,// USAGE (Mute) 0x09, 0xE9,// USAGE (Volume Up) 0x09, 0xEA,// USAGE (Volume Down) 0x09, 0xCD,// USAGE (Play/Pause) 0x09, 0xB7,// USAGE (Stop) 0x09, 0xB6,// USAGE (Scan Previous Track) 0x09, 0xB5,// USAGE (Scan Next Track) 0x09, 0xE5,// USAGE (Bass Boost) 0x75, 0x01,// REPORT_SIZE (1) 0x95, 0x08,// REPORT_COUNT (8) 0x81, 0x06,// INPUT (Data,Var,Rel,Prf) 0xC0 // END_COLLECTION 其实它是Cypress 一个例子, 我少做修改。你还可以参考一下HID Specification 中的例子。 one tip: 如果你已经到SET CONFIG, Windows 还给你的设备打 ?号, 那可能问题就在你的 REPORT DESCRIPTOR. 我的环境是:SL811HST(slave mode) , WIN2K good lucky! |
|
板凳#
发布于:2005-01-26 13:36
用SL811HST(slave )单做HID吗??很浪费啊
|
|
|
地板#
发布于:2005-01-26 13:49
你的INPUT是0x06是什么意思,如果是一个不定长的数据report count 应怎样定义?
|
|
地下室#
发布于:2005-01-26 18:45
INPUT的意思你可以查一下HID spec, 在这里06是array, absolute.
我的第一步目标是建立双向通信。真正的目的是交换一个几十K的Flash内容。现在还没有完成。压力很大,与你共勉! 有好消息告诉我。 TO:yyouking sl811hst 还做Host连接一个打印机。当初没有仔细的考虑,低估了难度,但现在木已成舟,无法回头。如果你有好的意见, 在下洗耳恭听。 |
|
5楼#
发布于:2005-01-27 19:27
good news, I have completed writing to device and reading data from device.
I will answer you any question I know. and I will write something about these days working of USB HID later, after finished this porject. too busy now. USB is a big challenge for me, I get it now. Great! |
|