【发布时间】:2021-02-16 06:33:28
【问题描述】:
我有一个 UART 可编程的第三方设备。
我需要创建一个带有功能密码的 USB - UART 桥接器(只有在输入正确密码后才能编程)
使用最新版本的 STM32CubeMX for Atollic TrueSTUDIO for STM32 9.3.0 生成代码 ... 我通过缓冲区在 USB 和 UART 之间传输数据(一个用于 usb-uart,另一个用于 uart-usb) 当我尝试传输几个字符时,一切正常,但是当我尝试传输大数据包时,由于 USB 速度远高于 UART,问题就开始了......
有两个问题:
1.如何告诉USB我需要停止传输数据并等待UART(缓冲区)忙碌
2.单片机端如何获取PC上设置的波特率(终端连接虚拟COM口时设置)
【问题讨论】:
-
你在用STM32 HAL驱动吗?
-
是... STM32Cube_FW_F1_V1.8.2
-
这是 RTOS 的完美任务
-
RTOS 是一个有效的选项。其他方法也是有效的,例如更多地依赖DMA。代码和 RAM 占用空间非常小的示例:github.com/manuelbl/usb-serial/firmware(用于 libopencm3,不适用于 STM32 HAL)。