USB HID 鼠标 + FREERTOS
结合 freertos 创建了一个程序。在这个程序中实现一个 usb hid 鼠标。我已经知道了如何配置,但是当我只是进行配置,更改代码上的任何语句时,usb就工作不正常了。是时钟问题吗?时钟源和频率是否正确? 检查时钟树配置是否有误。 也可能是FreeRTOS配置不对。 检查USB端点的配置,包括端点类型、方向和大小。 建议楼主去了解一下USB描述符,ST生成出来的默认都是不带描述符的吧,得自己写 有可能是时钟问题,USB 对时钟要求非常严格,必须是 48MHz。 你用的时钟是 HSE+PLL 还是 HSI?看下是否配置到位。 FreeRTOS 会不会把 USB 中断给屏蔽了?试试调低优先级看看。 改代码之后 USB 不正常,是不是结构体对齐或者堆栈溢出? 检查下 usb_device.c 里 MX_USB_DEVICE_Init() 有没有被误删或改动。 有时候 freertos 的 heap size 太小也会导致 USB 初始化失败。 用 CubeMX 配置完 USB 后建议不要随便手改系统初始化部分。 你用的哪个 USB 库?有的 HAL 包里对中断优先级很敏感。 USB HID 建议单独用一个 task 处理,不要和主 task 混在一起。 可以先不用 FreeRTOS 验证 USB 是否正常,再逐步加回 RTOS。 在你“更改代码”时,是否重新打开了 STM32CubeMX 或更改了 .ioc 文件?
页:
[1]