完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
图1 支持的鼠标 图2 不支持的鼠标 在 STM32Cube_FW_F4_V1.5.0ProjectsSTM32F429I-DiscoveryApplicationsUSB_HostHID_Mouse 基础上进行修改(STM32F429I-Discovery开发板也测试过,同样问题) 目前仅发现支持 HP的一款鼠标(HP PC设备配套的) 其他的有线,无线的(大概测试了4种)都不支持 区别在于,支持的鼠标 在如下函数中:static USBH_StatusTypeDef USBH_HID_ClassRequest(USBH_HandleTypeDef *phost) case HID_REQ_SET_IDLE: classReqStatus = USBH_HID_SetIdle (phost, 0, 0); //YFSoft 2015-04-06 LCD_UsrLog("si%d ",classReqStatus); /* set Idle */ if (classReqStatus == USBH_OK) { HID_Handle->ctl_state = HID_REQ_SET_PROTOCOL; } else if(classReqStatus == USBH_NOT_SUPPORTED) { HID_Handle->ctl_state = HID_REQ_SET_PROTOCOL; } break; case HID_REQ_SET_PROTOCOL: /* set protocol */ classReqStatus = USBH_HID_SetProtocol(phost, 0); LCD_UsrLog("sp%d ",classReqStatus); if (classReqStatus == USBH_OK) { HID_Handle->ctl_state = HID_REQ_IDLE; /* all requests performed*/ phost->pUser(phost, HOST_USER_CLASS_ACTIVE); status = USBH_OK; } else if(classReqStatus == USBH_NOT_SUPPORTED) { HID_Handle->ctl_state = HID_REQ_IDLE; // all requests performed phost->pUser(phost, HOST_USER_CLASS_ACTIVE); status = USBH_OK; } break; 调试信息是我添加的,从图1可以看出 USBH_HID_SetIdle 函数开始状态为忙,几次后就OK了,USBH_HID_SetProtocol也是类似 但是不支持的鼠标,如图2,USBH_HID_SetIdle开始为忙,后续为不支持,USBH_HID_SetProtocol 直接为不支持。 有遇到类似问题的网友没有? |
|
相关推荐
17个回答
|
|
好复杂的系统,不懂,帮顶~
|
|
|
|
为什么还挑鼠标呢? 应该是大多数支持, 少数几款不支持才对呀
|
|
|
|
可能是驱动不兼容的问题,等我先下载200多M的固件。
|
|
|
|
枚举都是正常的,很奇怪就支持一种。 USBH_HID_SetIdle 有帖子说 idle时间设置为100,但是没有用,本身这个命令 底层反馈也是不支持的。
|
|
|
|
有机玻璃底板?
|
|
|
|
楼主,可以上传一下工程吗?我这找不到这个例程。
|
|
|
|
底版看着不错啊
|
|
|
|
|
|
|
|
|
|
所在目录STM32Cube_FW_F4_V1.5.0ProjectsSTM32F429I-DiscoveryApplicationsUSB_Host
|
|
|
|
这是.Net Gadgeteer板,可以用C#开发,拖拉自动生成代码 http://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-9749525726.3.DyHkGT&id=43070516804 http://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-9749525726.9.DyHkGT&id=43019039149 底层运行.Net Micro Framework系统,采用的是STM32F405 和 STM32F429的芯片 洞洞板,是亚克力的板子,自己定制的。 |
|
|
|
比较小尺寸的LCD,触摸屏还比较容易,取靠近角的四个点就可以了,我们是修正的.net micro framework系统自带的触摸屏驱动。
|
|
|
|
是的,4个角的值就够了
|
|
|
|
本帖最后由 skywolf-1016972 于 2015-4-29 18:54 编辑
我测过几个鼠标,出问题的都是无线鼠标,你的也是这样的吗? 文档:Device Class Definition for Human Interface Devices (HID) Version 1.11 Appendix G: HID Request Support Requirements 对于Non-Boot Mouse,Set Idle Set Protocol 命令都是可选的。 我试的两个无线鼠标接收器,都是两个interface,第一个是键盘,第2个是鼠标及几个功能不明的设备。 两个无线鼠标中键盘的interface支持Set Idle Set Protocol, 两个无线鼠标中一个鼠标的Interface不支持Set Idle Set Protocol,另一个支持。但接收的数据包并不是boot protocol的。 如果鼠标不支持boot protocol,只能解析report的格式了,我现在也正烦着呢,因为设备要配无线鼠标。 |
|
|
|
不是的,我测试的是有线鼠标,无线的直接不行,有限的就HP的可以,其他的可以正常枚举,但是获取不到信息
|
|
|
|
楼主现在成功了吗?我也卡在这个问题上了
|
|
|
|
maishengwei 发表于 2018-11-29 09:54 请问无线鼠标的问题解决了吗?我也是有两个Protocol,现在数据进入不了buff里,读不了数据好烦人啊,有线鼠标倒是搞定了 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 08:15 , Processed in 0.838198 second(s), Total 105, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号