【问题标题】:STM32 usb cdc characters sending-receiving understandingSTM32 usb cdc字符收发理解
【发布时间】:2020-12-07 14:16:20
【问题描述】:

我正在尝试通过 USB CDC 将数据从 C# 应用程序发送到一个 STM32 开发板。我对方法 SerialPort.Write() 有问题,因为 write 方法只发送第一个字符而不是数组或字符串的所有字符。尝试发送字符串时,与串行终端(terminte、cutecome、..)的情况相同。有人可以解释一下 cdc usb 是如何工作的吗? STM32 是否以相同的方式发送数据,每帧中一个字符一个字符?我没有使用逻辑分析仪来查看信号,但这可能是下一步。 如果有人有 USB cdc 框架的图片,请分享。
当我将字符串从 STM32 开发板发送到运行良好的 C# 应用程序时。欢迎任何想法

【问题讨论】:

  • 听起来好像问题出在STM32端。我建议你开始一个新的问题,重点是 STM32 代码。

标签: serial-port embedded usb cdc


【解决方案1】:

如果调用正确,C# SerialPort.Write 函数能够一次写入整个字符串。字符串的字节将被传递到操作系统的 USB 驱动程序,驱动程序将根据设备的 USB 描述符中指定的端点的最大数据包大小将其拆分为数据包。然后这些数据包将被发送到设备,一次一个数据包。

我怀疑你的 STM32 代码中存在错误,但由于你没有发布MCVE,因此很难帮助你调试任何代码。

【讨论】:

    猜你喜欢
    • 2020-12-25
    • 2018-09-24
    • 2021-02-12
    • 2015-07-25
    • 2021-02-28
    • 2020-08-09
    • 2019-07-23
    • 2015-07-01
    • 2017-10-31
    相关资源
    最近更新 更多