打印
[开发工具]

Cubemx 配置STM32 USB CDC 电脑识别不出虚拟串口

[复制链接]
92|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2025-3-5 13:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
解决方法:

在usbd_cdc_if.c文件中新定义一个结构体:

USBD_CDC_LineCodingTypeDef USBD_CDC_LineCoding =
{
    115200,      // 默认波特率
    0X00,        // 1位停止位
    0X00,        // 无奇偶校
    0X08,        // 无流控,8bit数据位
};

找到CDC_Control_FS函数,找到CDC_SET_LINE_CODING和CDC_GET_LINE_CODING分支,添加以下代码:

  case CDC_SET_LINE_CODING:
        USBD_CDC_LineCoding.bitrate = (pbuf[3] << 24) | (pbuf[2] << 16) | (pbuf[1] << 8) | pbuf[0];
        USBD_CDC_LineCoding.format = pbuf[4];
        USBD_CDC_LineCoding.paritytype = pbuf[5];
        USBD_CDC_LineCoding.datatype = pbuf[6];
    break;

    case CDC_GET_LINE_CODING:
        pbuf[0] = (uint8_t)(USBD_CDC_LineCoding.bitrate);
        pbuf[1] = (uint8_t)(USBD_CDC_LineCoding.bitrate >> 8);
        pbuf[2] = (uint8_t)(USBD_CDC_LineCoding.bitrate >> 16);
        pbuf[3] = (uint8_t)(USBD_CDC_LineCoding.bitrate >> 24);
        pbuf[4] = USBD_CDC_LineCoding.format;
        pbuf[5] = USBD_CDC_LineCoding.paritytype;
        pbuf[6] = USBD_CDC_LineCoding.datatype;
    break;
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_65578049/article/details/145879666

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2145

主题

16386

帖子

16

粉丝