想用单片机给一个USB接口的游戏手柄解码的问题?

小弟曾在论坛上发过一个相关的帖子,还得到各位大位的指点,在此谢过。 还是老问题,小弟想用AVR的Mega16给一个USB接口的游戏手柄解码(就是说想把手柄的按键的键值读进单片机中,让单片机知道是什么键按下了),用CH375做USB主机,可是小弟是一个USB的菜鸟。看了两天的书,我知道了USB手柄作为一个HID设备,接上主机(HOST)后,要先经历枚举过程。 可是枚举完成后,CH375与手柄之间应该用中断传输。但是,这是一个怎样的过程。 也就是说,在中断控制过程中,单片机怎么控制CH375可以获得手柄向主机发送按键的键码数据呢? 首先,单片机怎么知道CH375完成了枚举并进入中断传输阶段。要不要单片机发送什么命令告知CH375进入中断传输阶段呢? 而后,我只知道,所谓的USB中断传输,其实就是USB主机定周期的向USB设备查询。可是,在这过程中CH375是不是会自动完成这个过程。一旦CH375收到手柄的数据,那么就以中断的方式(INT#)告知单片机,而单片机所做就是读取CH375输入数据缓冲区就行了。 还请大侠们支招,不甚感谢!!

还有CH375有没有能通过ICC编译器的库文件吗?


实际上的过程是这样的,你首先将375的主频降到1.5M,在将连接USB的主机的D+和D-调换,然后在枚举完成之后就在主程序中发送请求从端点1读出数据的令牌,你发E-MAIL过来我给你发个HID的例子程序: tech@wch.cn


你这个不需要用到我们的库文件,我们的库文件是用来单片机操作U盘的,你的不需要用到库文件.


跟大小端有关系。

是什么意思?难道跟D+,D-的反接还关吗? 还有请问有没有与程序相关的电路原理图?


不是这个意思,这是是USB协议里面的一些规定,USB设备一插上,主机检测到D+为高D-为低的话,表示插上的是全速设备,反之则认为是低速设备,我们的375在正常相连接的时候是全速设备,而只有将D+和D-接反了之后才认为是低速设备


只有登录才能回复,可以选择微信账号登录