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

[复制链接]
643|16
 楼主| lilaiju 发表于 2025-5-31 11:00 | 显示全部楼层 |阅读模式
项目迁移到 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兼容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

51

主题

51

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部