lilaiju 发表于 2025-5-31 11:00

STCubeFW_F4代码生成后打断 HID USB 连接

项目迁移到 STCubeFW_F4 时,HID USB 通信停止工作。在比较STCubeFW_F4 生成代码的差异后,我发现“usbd_customhid.c”中的函数“USBD_CUSTOM_HID_DataOut”不再调用USBD_LL_PrepareReceive(pdev, CUSTOM_HID_EPOUT_ADDR , hhid->Report_buf,USBD_CUSTOMHID_OUTREPORT_BUF_SIZE)就像在我项目的早期版本中所做的。将此行添加回文件可修复 HID USB 通信。当我通过 CubeMX 重新生成代码时,该行再次被删除,并且每次都必须手动修改。是不是IDE调用库文件有问题?

t60yz 发表于 2025-5-31 23:37

USB 中间件代码不是用户可持久化的部分

t60yz 发表于 2025-5-31 23:38

ST 在较新版本中将 接收下一包 OUT 报文的行为转移到了 USBD_CUSTOM_HID_ReceivePacket() 函数中,目的是让用户手动控制何时准备下一次接收。

一秒落纱 发表于 2025-6-9 12:07

在将项目从STM32CubeMX生成的代码迁移到STCubeFW_F4时,遇到HID USB通信停止工作的问题,特别是在USBD_CUSTOM_HID_DataOut函数中缺少USBD_LL_PrepareReceive调用的情况下,这通常是由于STM32CubeMX生成的代码版本与STCubeFW_F4之间的差异造成的

江河千里 发表于 2025-6-9 12:39

STCubeFW_F4可能使用了不同版本的USB库,这些库在处理HID通信时可能存在差异。

别乱了阵脚 发表于 2025-6-9 13:00

不同版本的STM32CubeMX生成的代码可能在USB处理逻辑上有所不同

远山寻你 发表于 2025-6-9 14:42

在CubeMX中,USB HID配置可能有不同的选项,导致生成的代码逻辑不同

光辉梦境 发表于 2025-6-9 15:00

配置文件中可能缺少某些必要的设置,导致生成的代码缺少某些功能。

三生万物 发表于 2025-6-9 16:00

CubeMX的代码生成模板可能没有正确包含某些必要的函数调用

暖了夏天蓝了海 发表于 2025-6-9 19:00

如果你发现手动添加USBD_LL_PrepareReceive可以解决问题,并且每次重新生成代码后都需要修改,可以考虑创建一个脚本或工具来自动进行这种修改

冰春彩落下 发表于 2025-6-9 20:00

如果可能,尝试使用自定义模板来生成代码,这样可以确保每次生成的代码都包含所需的逻辑

夜阑风雨 发表于 2025-6-9 22:00

你可以在生成代码后,使用自定义的脚本或工具来自动插入所需的代码行

淡漠安然 发表于 2025-6-9 23:00

确保你使用的USB库版本与STCubeFW_F4兼容。查看STM32CubeMX的版本以及相关的USB库版本,并确认它们是否与STCubeFW_F4兼容
页: [1]
查看完整版本: STCubeFW_F4代码生成后打断 HID USB 连接