久芯网

求助: STM32F401 USB中断方式使用0x81以外的IN EP不发送数据

avatar 123456Kelly 提问时间: 2023-08-29 09:20:50 / 已解决
1: 定义一个摇杆或鼠标, 中断方式发送数据,IN EP使用0x81,正常, 改用0x82,0x83。。。。不发送数据,卡在数据发送的命令里面。 (如果改用bluk发送发送数据, 至少usb分析软件能看到有数据发出来)
2: 定义一个组合设备,2个摇杆,windows枚举,设备管理器里面一切正常, in EP用0x81的正常发送数据,用0x82或0x83的不能正常发数据, 如果2个摇杆都使用0x81,都能发数据,只是windows里面2个摇杆会混乱。
3: 同样的描述符, 和setup之类的配套函数,移植到STM32F072上,一切正常。只是STM32F072上多用了个USB 的PMA。
4: 怀疑可能是少了什么定义,没有打开usb的某项功能, 不知道各位大神有没碰到过。

如需获得 STM32F401 等器件的更多信息,请点击链接或 点击此处 联系在线客服!

4个回答
  • avatar xmshao
    最佳答案
    回答时间: 2023-08-29 09:38:25

    你使用之前的传统USB固件吧。你看看这个函数 USBD_CUSTOM_HID_DataIn(void *pdev, uint8_t epnum),这个地方有个端点索引值的验证,你是否做了相应调整。你适当调整下看看。

  • avatar STMWoodData
    回答时间: 2023-08-29 09:56:10

    端点要使能打开,还要设置端点的发送接收缓存BUFFER。

  • avatar 123456Kelly
    回答时间: 2023-08-29 10:26:34

    用的官方USB库, 不是cube ,HAL的

  • avatar 123456Kelly
    回答时间: 2023-08-29 10:43:25

    感谢2位大神,下载了最新的USB库,用HID CDC的复合设备的范例工程修改后成功了。

会员中心 微信客服
客服
回到顶部