解决方法:
在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
|