|
日志内容
| 自制USB键盘来玩玩~~~~(源代码,原理图) |
|
电脑圈圈 发表于 2007-3-22 17:54:00 | 哈哈,终于搞了一回USB HID设备,做了一个USB键盘来玩玩~~~~
其中的报告描述符让我晕了几天~~~~~几份HID相关的协议还是蛮长的~~~~~~ 明天再弄个USB鼠标设备玩玩~~~~~~~有空的话再搞个红外遥控器玩玩~~~ 这回是拿以前做的Mass storage来改的,所以比较快,修改了一下描述符 以及端点处理等,就行了。用了一个4*4的小键盘,有0-9十个数字键, Num Lock键,Caps Lock键,Shift键,Ctrl键,Alt键,回车键等。
最多可以有三个键同时按下,如果相交的话,最多只能两个键按下。
以下是通过串口返回的调试信息:
系统启动................................ 断开USB连接........................ USBD12芯片初始化 设置地址..................... 地址为: 0 连接USB............... USB总线复位................................ USB总线挂起................................ USB总线复位................................ USB总线挂起................................ USB总线复位................................ USB标准请求................................ 获取描述符................................ 获取设备描述符................................ USB总线复位................................ USB标准请求................................ 设置地址..................... 地址为: 2 USB标准请求................................ 获取描述符................................ 获取设备描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取语言ID................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取设备序列号................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取语言ID................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取产品字符串................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取语言ID................................ USB标准请求................................ 获取描述符................................ 获取字符串描述符................................ 获取产品字符串................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取设备描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ 获取配置描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 获取描述符................................ USB标准请求................................ 设置配置................................ USB类请求................................ 设置空闲................................ USB标准请求................................ 获取描述符(从接口).............................. 获取报告描述符................................ USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. USB标准请求................................ 获取描述符(从接口).............................. 端点2输出................................ 端点2的数据是 0x01 端点2输出................................ 端点2的数据是 0x03 端点2输出................................ 端点2的数据是 0x01 端点2输出................................ 端点2的数据是 0x00 端点2输出................................ 端点2的数据是 0x02 端点2输出................................ 端点2的数据是 0x03
在设备管理器里看到的图:

原理图 (用的是以前做IDE转USB的板,所以上面还有个IDE接口和573锁存器,可以不用理会它们):
(注意:原理图上所标的晶体值是以前的,这个程序中使用的是22.1184M的晶体.它关系到串口波特率,如果你不使用串口,那么可以不用理会它.)
注意:图中串口电平转换部分的C8和C10接反了,C11负端应接VDD。D12的SUSPEND(12脚)应该接地。USB接头的D+和D-跟芯的D+和D-之间应该串联22欧姆的匹配电阻。片由于图得比较匆忙,所以没留意。右击选择图片另存为可以看到完整图片了.

实物图片(键盘是外接的):
|
| 阅读全文 | 回复(167) | 引用通告 | 编辑
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
asdcxz(游客)发表评论于2008-9-3 9:21:00 |
ssssssssssssssssssss
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-7-11 12:48:00 |
这个好象不行吧,我没研究过。我估计驱动程序会自己组装成报告的长度去发送吧。这个需要你自己去研究研究了。 其实定长也不错呀,你可以把每个数据包的第一个字节用来表示实际数据的长度,这样你的设备就知道数据是多少了。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-7-10 22:04:00 |
 以下引用computer00在2008-7-1 21:24:00发表的评论: 1. USB协议固定,中断传输的最大包长度最多只能到64字节,你设置成128字节是不对的。<br> <br> 2. 数据并没有发送两遍,而是经过了不同层的驱动而已。因为WINDOWS的驱动是分层的,一个IO请求包是一层层往下发送的。 谢谢,还想再问一个问题,windows读写usb能否不按照报告描述符中定义的长度?比如说报告描述符中定义的长度是64byte,那么正常每次writefile的长度为65byte,我想问一下,能否每次writefile的长度小于65byte,如果不可以,请问这是为什么?因为在我们这里的应用需要传输不等长的字符,很多都不是64byte的,请问有什么办法吗?谢谢!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-7-1 21:24:00 |
1. USB协议固定,中断传输的最大包长度最多只能到64字节,你设置成128字节是不对的。 2. 数据并没有发送两遍,而是经过了不同层的驱动而已。因为WINDOWS的驱动是分层的,一个IO请求包是一层层往下发送的。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-7-1 18:24:00 |
 以下引用computer00在2008-6-27 1:26:00发表的评论: 没有做USB音箱哦……不过现在应该有USB声卡的芯片卖了吧,自己找个焊上就行了。 SL811HS不支持高速模式,最快只能到全速。全速模式下是1ms每帧,中断传输最大 包长为64字节。高速模式下,每帧125us,最大包长1024字节。 我自己测了一下速度,发现send为42kb/s,rec为31kb/s.因为sl811可用缓冲为0xc0byte,其中端点0为0x40. 我用端点1作为send,缓冲为0x40,端点2作为recv,缓冲为0x40.主要有两个问题请教一下00: 1,我把端点0的缓冲用在了端点1上,将端点1的长度修改为0x80,hid报告描述符对于send的长度也由原来的0x40修改为0x80,发现速度可以达到83kb/s,但是好像不怎么稳定,有时会识别不出设备。请问这样做有没有什么问题? 2,我用bus hound监测recv,发现速度只有31kb/s,但是发现所有的数据都传送了两遍,比如我要传送0x1~0x40,bus hound监测到0x1~0x40,0x0,0x1~0x40,并且每一帧数据都是这样,但是这两次数据发送的设备不一样,一个是通过usb 人体学输入设备,一个是通过HID-compliant device.请问为什么我的设备插上去会有两个设备呢?能否去掉HID-compliant device?能否不传输0x0,0x1~0x40从而使得速度能提升1倍? 谢谢了,00高手!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-6-27 1:26:00 |
没有做USB音箱哦……不过现在应该有USB声卡的芯片卖了吧,自己找个焊上就行了。 SL811HS不支持高速模式,最快只能到全速。全速模式下是1ms每帧,中断传输最大 包长为64字节。高速模式下,每帧125us,最大包长1024字节。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-26 19:22:00 |
请问sl811s能否做成hid2.0的高速设备?这个125us/桢,1ms/桢,每个包64byte或1024byte,这些设置是跟什么有关?比如我在报告描述符中把每个包长从0x40改成更大的,会有什么后果呢?
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
wanaiping(游客)发表评论于2008-6-26 14:51:00 |
弱弱的帮个忙. OO在做USB音箱吗?能提供点资料吗?
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-20 15:51:00 |
我的问题已经得到了解决,我是来感谢斑竹的无私共享精神的!还是描述符的问题,里面的长度被我弄错了,还是太粗心了,
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-6-19 15:50:00 |
从描述符来看,似乎没啥问题啊。。。你不会是把811设置成了低速工作模式吧……
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-19 13:22:00 |
/*报告描述*/ INT8U Rep_Descp[] = { 0x05, 0xFF, // USAGE_PAGE(User define) 0x09, 0xFF, // USAGE(User define) 0xa1, 0x01, // COLLECTION (Application) 0x05, 0x01, // USAGE_PAGE(1) 0x19, 0x00, // USAGE_MINIMUM(0) 0x29, 0xFF, // USAGE_MAXIMUM(255) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0xFF, // LOGICAL_MAXIMUM (255) 0x75, 0x08, // REPORT_SIZE (8) 0x95, 0x01, // REPORT_COUNT (64) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x05, 0x02, // USAGE_PAGE(2) 0x19, 0x00, // USAGE_MINIMUM (0) 0x29, 0xFF, // USAGE_MAXIMUM (255) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0xFF, // LOGICAL_MAXIMUM (255) 0x95, 0x08, // REPORT_COUNT (8) 0x75, 0x01, // REPORT_SIZE (64) 0x91, 0x02, // OUTPUT (Data,Var,Abs) 0xc0 // END_COLLECTION }; // END_COLLECTION 谢谢了!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-19 13:20:00 |
/*配置*/ INT8U Cfg_Descp[] = { 0x09, 0x02, CFG_LEN,0x00, 0x01, 0x01, 0x00, 0xA0, 0x32, /*接口描述符*/ 0x09, 0x04, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, /*hid*/ 0x09, 0x21, 0x00, 0x01, 0x00, 0x01, 0x22, 0x39, 0x00, /*endpoint*/ 0x07, 0x05, 0x81, 0x03, EP1_LEN,0x00, 0x0A, /*endpoint*/ 0x07, 0x05, 0x1, 0x03, EP2_LEN,0x00, 0x0A, };
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-19 13:16:00 |
呵呵,是我自己太粗心了,没仔细看。我看windows端提示该设备需要带宽145%,我感觉是有问题的,我把我的描述符贴一下,请您帮看一下,我也不知道这个带宽跟什么有关? INT8U Dev_Descp[] = { DEV_LEN, 0x01, 0x10,0x01, 0x00, 0x00, 0x00, EP0_LEN, 0xB4,0x04, 0x11,0x08, 0x00,0x01, 0x01, 0x02, 0x00, 0x01};
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-6-19 11:32:00 |
注意请仔细看我的回复,我是说“如果做成其它设备”,才支持批量传输。 这个64KB/S是跟协议有关的,如果是2.0的高速设备,那么可以支持更快的 速度。好象是可以支持1024字节的最大包长,并且是128us的微帧,所以应该 可以达到8000KB/S。但是你的是1.1的全速设备,所以最多只能到64KB/S。 当然这个还跟驱动有关的,协议里面规定了中断传输的最小查询单位是一个帧, 如果是你自己设计的主机,可以不遵循这个标准。其实你可以把中断传输看做 是一种特殊的批量的传输,就是限制了查询时间的一种批量传输。 提示没有足够的带宽,可能是因为你的描述符不对,或者是你的集线器上有 其它设备占用了过多的带宽,导致带宽不足,你可以考虑换个端口试试。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-19 9:24:00 |
通过你的例子,我把驱动程序固化到板子里,加电后,windows端提示:控制器没有足够的带宽运行这个人体学设备,请问是什么引起的?谢谢!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-19 8:22:00 |
 以下引用computer00(游客)在2008-6-19 1:20:00发表的评论: 这个HID设备windows端是不需要安装驱动程序,这也是它的一大优点。你做成HID设备的话,由于是使用中断传输,因此最快也只能是每毫秒查询一次,传输一个数据包。811应该可以支持每包最大64字节吧,这样的话,最快就是64KB/S了。当然,如果是做成其它设备,不是中断传输,例如批量传输等,可以获得更快的速度。 谢谢圈圈的权威回答,但是我看资料说如果做成hid设备的话,是不支持批量传输的,还有这个hid设备的速度是跟协议比如2.0还是跟硬件本身有关呀!我现在用的芯片是sl811,采用的1.1的协议,做成hid设备最快64kb/s,但是如果采用2.0协议是否能快一些,还是跟协议无关,由硬件本身决定的?
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00(游客)发表评论于2008-6-19 1:20:00 |
这个HID设备windows端是不需要安装驱动程序,这也是它的一大优点。你做成HID设备的话,由于是使用中断传输,因此最快也只能是每毫秒查询一次,传输一个数据包。811应该可以支持每包最大64字节吧,这样的话,最快就是64KB/S了。当然,如果是做成其它设备,不是中断传输,例如批量传输等,可以获得更快的速度。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-18 22:43:00 |
 以下引用computer00在2008-6-18 21:17:00发表的评论: 可以的,你可以参考这两个实际的例子:<br> http://blog.ednchina.com/computer00/123115/message.aspx<br> http://group.ednchina.com/93/8769.aspx 对了,还有一个问题,采用这个例子的hid报告描述符,windows xp端是否不需要安装驱动?
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
菜鸟(游客)发表评论于2008-6-18 21:47:00 |
谢谢你的回复,还有一个问题想请教一下,sl811的传输速度能有多少?每秒能有多少kb,我上网查了些资料,好像速度比较慢,有的说只有8kb/s有的说64kb/s,也不知道哪一个是正确的?谢谢!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-6-18 21:17:00 |
可以的,你可以参考这两个实际的例子: http://blog.ednchina.com/computer00/123115/message.aspx http://group.ednchina.com/93/8769.aspx
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
访客2Kb4EQ(游客)发表评论于2008-6-18 20:16:00 |
有一个问题想请教一下高手,我现在想用sl811做为从设备,能否被识别为hid设备? 我上网查了些资料,大多是键盘鼠标一类的通用驱动. 而我这个sl811只想做一个普通的数据口来传输数据,请问如果按照hid来做,报告描述符该怎么写? 这样是否windows端就不需要驱动了,期待您的回复!!先谢谢了
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
访客2Kb4EQ(游客)发表评论于2008-6-18 20:07:00 |
呵呵,看到了,里面有记录,谢谢共享!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
访客2Kb4EQ(游客)发表评论于2008-6-18 20:02:00 |
请问密码是多少?
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2008-3-18 18:40:00 |
这个板上有一个跳线可以选择,选择为USB供电或者使用外部电源。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
访客Jne5HU(游客)发表评论于2008-3-18 12:26:00 |
00 俄,我想问个比较白痴的问题,原理图的供电是怎么回事?VDD,+5V是需要外部提供吗?不是说USB接口有一根电源线么
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2007-12-13 11:04:00 |
这个原理图有些地方没画好,你可以参考一下新版的原理图: user1/2198/archives/2007/43611.html 以及新版的键盘程序: user1/2198/archives/2007/43947.html
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| 我用SO封装的D12作您的这些实验,电路也按您的电路来连的,怎么整也不好使!!! |
|
于振南(游客)发表评论于2007-12-13 1:58:00 |
怎么办呀!!
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2007-12-5 0:26:00 |
这个我还没去研究过...也许类型不一样?那些好象是多媒体键盘上的? 有个逻辑最大值,还有个用法最大值,你看看这些。或者干脆借块有这些功能的USB键盘来抓数据,然后再自己来做,嘿嘿~~~
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
飘零(游客)发表评论于2007-12-4 23:42:00 |
我原来看你的程序里有一块定义用法最大值只定义到0X65,我自己把他该到0X99 但还是没用
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
飘零(游客)发表评论于2007-12-4 23:40:00 |
哦 圈圈 请问为什么我在发POWER键(0X66),音量增加(0X80),音量减小(0X81)这三个键到电脑时 怎么一点反应都没有? 我在软件抓包的时候已经看到有这三个键进入了 但就是没反映 这是怎么回事呢?
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2007-12-4 18:42:00 |
这软件是挺厉害的,它将很多东西插在了操作系统和硬件层之间。我在使用时,一不小心也会导致系统死机或者重新启动的。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
飘零(游客)发表评论于2007-12-4 14:56:00 |
谢谢圈圈,在你程序帮助下 我的USB键盘终于做出来了 我想问个问题 为什么我的电脑上装BUS HOUSE就直接把系统给毁了 试了两个,第一次直接把我那块快不行的硬盘给搞崩溃了,不能装系统了 第二次在新买的二手硬盘上装,系统同样崩溃,不过可以进安全模式, 不知道怎么回事????? 这软件这么厉害啊~~~~
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
北风good发表评论于2007-11-22 16:48:00 |
佩服,佩服
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
99(游客)发表评论于2007-11-19 12:55:00 |
各位,帮帮忙哦,我现在不知道如何调试
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
rliw(游客)发表评论于2007-11-13 13:39:00 |
拜圈圈大仙
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2007-11-11 18:52:00 |
USB按键对应的码表可以在www.usb.org上找到,也可以在我的USB小组里面找到. http://group.ednchina.com/93/5640.aspx
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
飘零(游客)发表评论于2007-11-8 23:11:00 |
请问OO 在哪能找到完整的USB按键对应编码表
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
xcc(游客)发表评论于2007-10-28 11:29:00 |
主要是做着自己玩,学学PS/2和无线的东西。耗电倒无所谓,只要能做出来~
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
xcc(游客)发表评论于2007-10-28 11:23:00 |
多谢00兄
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
| Re:自制USB键盘来玩玩~~~~(源代码,原理图) |
|
computer00发表评论于2007-10-27 23:38:00 |
呵呵,这个方面我也没做过,这个芯片应该要比较省电,而且价格也不能太高才行。 估计自己做成本会比较高的,如果是做来玩的话,可以去chunyang的BLOG里看看,就在我这个页面的右边有个连接。
|
| 个人主页 | 引用 | 返回 | 删除 | 回复
|
|
用户信息
载入中...
|