[STM32F1] STM32 usbd_cdc_core USB OTG 驱动的问题

[复制链接]
32|0
地瓜patch 发表于 2026-9-8 23:00 | 显示全部楼层 |阅读模式

我用stm32f107 USB 主机设备库来构建一个 cdc 设备。使用了 vcp 示例并对其进行了修改,但有64 字节数据包丢失。
我修改了 usbd_cdc_core.c,实现了用 memcpy 写入 APP_Rx_Buffer。我是在任务级别执行这些写入操作的,通过禁用中断后调用这些例程来实现。
我怀疑问题可能出在 DCD_EP_Tx () 的工作方式上。因为该例程在中断时间运行,并且因为 DCD_EP_Tx () 正在处理。我怀疑,在任务时间内超出了传输的进度。
传输由 DCD_EP_Tx () 设置,APP_Rx_ptr_out 推进,然后任务恢复执行,但数据尚未发送。此时任务向 APP_Rx_Buffer 写入了一些字节,覆盖了仍然待发送的数据。
如何确保能在 USB 中断之外写入 APP_Rx_buffer,而不会覆盖待发送的数据?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

3092

主题

18296

帖子

31

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