打印

那位大侠熟悉STM32的USB应用啊,最简单的问题

[复制链接]
1728|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cxd0812|  楼主 | 2013-9-5 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟刚开始学习USB,用STM32学的,看了几天那个HID鼠标的demo,自己改成键盘了,但是关于底层的好多操作还是没弄明白,我想知道那些设备描述符,报告描述符之类的是从哪里发送到主机的,我认为程序结构应该是STM32开中断,然后来的USB中断stm32看一下是收到的什么数再做相应的操作,但实际只看到了刚开始的那一部分,后面传输数据就找不到了,哪位大侠稍稍指点一下啊,小弟感激不尽。
沙发
trumpxp| | 2013-9-5 19:34 | 只看该作者
没有用过USB协议这一块   楼主   帮你顶一个   看看别人的意见如何

使用特权

评论回复
板凳
s_f_tan| | 2013-9-7 13:39 | 只看该作者
主机在配置的时候会发命令到设备上,要设备把各种描述符发过去,发完了主机就知道设备是个什么东西了,然后找相应的驱动程序来驱动。
你那个hid 设备是hidclass 驱动的

使用特权

评论回复
地板
拿起书本| | 2013-9-7 22:07 | 只看该作者
         0) 0 GET_STATUS:用来返回特定接收者的状态

  1) 1 CLEAR_FEATURE:用来清除或禁止接收者的某些特性

  2) 3 SET_FEATURE:用来启用或激活命令接收者的某些特性

  3) 5 SET_ADDRESS:用来给设备分配地址

  4) 6 GET_DEscriptOR:用于主机获取设备的特定描述符

  5) 7 SET_DEscriptOR:修改设备中有关的描述符,或者增加新的描述符

  6) 8 GET_CONFIGURATION:用于主机获取设备当前设备的配置值(注同上面的不同)

  7) 9 SET_CONFIGURATION:用于主机指示设备采用的要求的配置

  8) 10 GET_INTERFACE:用于获取当前某个接口描述符编号

  9) 11 SET_INTERFACE:用于主机要求设备用某个描述符来描述接口

  10) 12 SYNCH_FRAME:用于设备设置和报告一个端点的同步帧

控制传输是USB的重心,而这11个命令是控制传输的重心,所以这11个命令是重中之重,这个搞明白了,USB就算是入门了。

使用特权

评论回复
5
cxd0812|  楼主 | 2013-9-9 10:10 | 只看该作者
谢谢大家的帮助啊,我只是想问是通过哪个函数发的呵呵,我还没问到这么深啊,谢谢大家啊,一起努力,加油

使用特权

评论回复
6
zzfei90| | 2013-9-10 18:18 | 只看该作者
应该有write_report或者write_hid之类的函数吧,不同的库,名字也不一样
发送是这样的,通过一个函数把你要发送的数据写到缓冲区(RAM)中,电脑会给你发命令,轮询,USB模块会将这些数据上传的,如果没有数据可发,就回复NAK

使用特权

评论回复
7
zeluo| | 2013-9-10 18:41 | 只看该作者
USB协议还是比较复杂的  这一块  不是很熟悉啊  楼主  帮你顶一个吧  看看有没有高手能够解决这个问题  顶你一个

使用特权

评论回复
8
cxd0812|  楼主 | 2013-9-24 15:20 | 只看该作者
大哥们,小弟新手,怎么结帖啊,怎么说我分数分配的不对呢,已经分对了啊

使用特权

评论回复
9
woshansi| | 2014-1-25 19:26 | 只看该作者
lz现在解决了吗,我也遇到这个问题了,不知道怎么发送数据,我的电脑已经设别我的设备了,识别成键盘,我也是从鼠标里面改过了,但是无法发送按键的值

使用特权

评论回复
10
lh2008xp| | 2014-11-17 16:28 | 只看该作者
woshansi 发表于 2014-1-25 19:26
lz现在解决了吗,我也遇到这个问题了,不知道怎么发送数据,我的电脑已经设别我的设备了,识别成键盘,我也 ...

你的问题解决了吗?求解,兄弟我也在学着把joystick中的鼠标枚举修改成键盘的但是不知道从何入手。

使用特权

评论回复
11
cxd0812|  楼主 | 2015-3-10 13:29 | 只看该作者
lh2008xp 发表于 2014-11-17 16:28
你的问题解决了吗?求解,兄弟我也在学着把joystick中的鼠标枚举修改成键盘的但是不知道从何入手。 ...

现在学会一点点了,改主要改几个地方,一是配置描述符那里,改成键盘,二是报告描述符,如果不太懂就从网上抄一份键盘的,再就是PIDVID(这个其实不用改,因为你这个PIDVID在电脑上插过,驱动已经装好了,如果再一次插入同一个PIDVID的设备的话,电脑就不会再去读你的设备信息了,直接枚举为原来的设备,如果你重新删除设备再装一下也能OK)

使用特权

评论回复
12
lh2008xp| | 2015-4-13 10:36 | 只看该作者
cxd0812 发表于 2015-3-10 13:29
现在学会一点点了,改主要改几个地方,一是配置描述符那里,改成键盘,二是报告描述符,如果不太懂就从网 ...

谢谢,基本是你说的这些配置修改~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

13

帖子

0

粉丝