[STM32F4] pc无法接收到STM32F407的usb的任何数据,103不识别

[复制链接]
 楼主| yunfu1117 发表于 2025-3-12 10:00 | 显示全部楼层 |阅读模式
第一次使用STM32F103的usb,生成代码并配置了usbd_custom_hid_if.c文件后下载到板子上,我的电脑无法识别USB设备。然后我换成了F407,完成同样的操作后,电脑可以识别该设备为HID设备。但“USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, sendbuffer, 2)”这个函数似乎不正常,
pc无法接收到usb的任何数据。


公羊子丹 发表于 2025-3-13 08:20 | 显示全部楼层
STM32F103 的 USB 需要正确的 48MHz 时钟来源,你检查过 PLL 配置了吗?内部时钟可能不稳定。
周半梅 发表于 2025-3-13 08:22 | 显示全部楼层
F407 识别 HID 但不能发送数据,可能是 端点未正确配置,建议检查 USBD_CUSTOM_HID_SendReport 的 Endpoint 是否正确打开。
帛灿灿 发表于 2025-3-13 08:23 | 显示全部楼层
HID 设备发送数据前要 HOST 轮询,你在 PC 端用 HIDTool 或 Wireshark 看看 USB 数据包有没有变化?
童雨竹 发表于 2025-3-13 08:25 | 显示全部楼层
USBD_CUSTOM_HID_SendReport 发送失败有没有返回错误码?如果返回值不是 USBD_OK,可能是 USB 状态 异常。
万图 发表于 2025-3-13 08:26 | 显示全部楼层
试试 USBDevice FS 结构体的 state 是否处于 CONFIGURED 状态,不然发送数据可能无效。
Wordsworth 发表于 2025-3-13 08:27 | 显示全部楼层
你 PC 端用什么方式接收 USB 数据的?如果是 Python 或 C#,可以试试 HIDAPI 确保应用端正常工作。
Bblythe 发表于 2025-3-13 08:29 | 显示全部楼层
F103 无法识别 USB 设备,可能 DP 没有正确上拉,试试在 usb_device.c 里 MX_USB_DEVICE_Init() 之后手动拉高 DP。
Pulitzer 发表于 2025-3-13 08:30 | 显示全部楼层
F407 能识别但不能传输数据,可能 USBD_CUSTOM_HID_ReportDesc 里定义的 Report 长度和 PC 端期望的不同,试着改成 固定大小 发送。
Uriah 发表于 2025-3-13 08:32 | 显示全部楼层
你有试过用 STM32CubeMonitor 抓取 USB 通信数据吗?这样可以看到 HID 报文有没有真正发出去。
Clyde011 发表于 2025-3-13 08:33 | 显示全部楼层
HID 协议需要 PC 端主动请求数据,试试 USBD_CUSTOM_HID_ReceivePacket() 让 PC 端先发送一个数据包看看能否触发通信。
flycamelaaa 发表于 2025-3-21 16:00 | 显示全部楼层
建议更换数据线。
powerantone 发表于 2025-3-21 19:00 | 显示全部楼层
若使用外部晶振,检查PLL配置是否生成48MHz USB时钟。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

46

主题

48

帖子

0

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