梧桐uuu 发表于 2025-5-9 09:00

USB HID 鼠标 + FREERTOS

结合 freertos 创建了一个程序。在这个程序中实现一个 usb hid 鼠标。我已经知道了如何配置,但是当我只是进行配置,更改代码上的任何语句时,usb就工作不正常了。是时钟问题吗?

duo点 发表于 2025-5-9 11:42

时钟源和频率是否正确?

jcky001 发表于 2025-5-9 11:43

检查时钟树配置是否有误。

cr315 发表于 2025-5-9 11:44

也可能是FreeRTOS配置不对。

elephant00 发表于 2025-5-9 11:45

检查USB端点的配置,包括端点类型、方向和大小。

技术工程师 发表于 2025-5-9 13:56

建议楼主去了解一下USB描述符,ST生成出来的默认都是不带描述符的吧,得自己写

公羊子丹 发表于 2025-5-25 07:34

有可能是时钟问题,USB 对时钟要求非常严格,必须是 48MHz。

周半梅 发表于 2025-5-25 07:35

你用的时钟是 HSE+PLL 还是 HSI?看下是否配置到位。

帛灿灿 发表于 2025-5-25 07:35

FreeRTOS 会不会把 USB 中断给屏蔽了?试试调低优先级看看。

童雨竹 发表于 2025-5-25 07:36

改代码之后 USB 不正常,是不是结构体对齐或者堆栈溢出?

万图 发表于 2025-5-25 07:37

检查下 usb_device.c 里 MX_USB_DEVICE_Init() 有没有被误删或改动。

Wordsworth 发表于 2025-5-25 07:38

有时候 freertos 的 heap size 太小也会导致 USB 初始化失败。

Bblythe 发表于 2025-5-25 07:39

用 CubeMX 配置完 USB 后建议不要随便手改系统初始化部分。

Pulitzer 发表于 2025-5-25 07:40

你用的哪个 USB 库?有的 HAL 包里对中断优先级很敏感。

Uriah 发表于 2025-5-25 07:41

USB HID 建议单独用一个 task 处理,不要和主 task 混在一起。

Clyde011 发表于 2025-5-25 07:42

可以先不用 FreeRTOS 验证 USB 是否正常,再逐步加回 RTOS。

4y1b3 发表于 2025-5-31 23:47

在你“更改代码”时,是否重新打开了 STM32CubeMX 或更改了 .ioc 文件?
页: [1]
查看完整版本: USB HID 鼠标 + FREERTOS