图解 STM32 USB CDC虚拟串口 的实现

简单说,CDC虚拟串口 就是通过usb实现的串口通讯

本文使用 STN32F103C8T6 单片机,找了许多介绍都不错,由于不喜欢看枯燥的文字,所以把这个过程用图片的形式展示出来,适合小白,高手勿喷

增加的程序代码借鉴https://blog.csdn.net/qq2745567641/article/details/149344792

usbd_cdc_if.cCDC_Receive_FS中添加回传逻辑:

复制代码
static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len)
{
  /* 回传收到的数据 */
  CDC_Transmit_FS(Buf, *Len);

  /* 重新使能接收 */
  USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]);
  USBD_CDC_ReceivePacket(&hUsbDeviceFS);
  return (USBD_OK);
}

main.c的主循环中添加周期性发送逻辑

复制代码
//在mian.c 的前面加 #include "usbd_cdc_if.h"
#include "usbd_cdc_if.h"   //加这个   CDC_Transmit_FS 就不会出波浪线

//程序其他代码

...................


/* 测试字符串 */
  uint8_t test_buf[] = "Hello, CDC Virtual COM!\r\n";
  uint32_t send_cnt = 0;

  while (1)
  {
    /* 每1秒发送一次测试数据 */
    if(send_cnt % 1000 == 0)
    {
      CDC_Transmit_FS(test_buf, sizeof(test_buf)-1);
    }
    HAL_Delay(1);
    send_cnt++;
  }

就改这结果地方,编译烧录就可以看到UART的串口通讯的效果

使用软件

STN32CubeMx V6.9以上

Keil uVision5 v5.37.0.0

烧录器 ST-LINKV2

STM32F103C8T6 最小开发板

现在开始

相关推荐
Championship.23.241 天前
2026年AI辅助STM32 IoT实战:从串口到云平台全指南
人工智能·stm32·物联网
Deitymoon1 天前
STM32——按键控制led灯
stm32·单片机·嵌入式硬件
三品吉他手会点灯1 天前
STM32 VSCode 开发-与Keil MDK协同开发环境搭建
笔记·vscode·stm32·单片机·嵌入式硬件
三佛科技-187366133971 天前
FT32F103VEAT7兼容STM32F103VETx/APM32F103VET6,单片机替代分析
单片机·嵌入式硬件
風清掦1 天前
【江科大STM32学习笔记-11】SPI通信协议 - 11.2 硬件SPI读写W25Q64
笔记·stm32·单片机·嵌入式硬件·学习
[J] 一坚1 天前
嵌入式高手C
c语言·开发语言·stm32·单片机·mcu·51单片机·iot
FreakStudio1 天前
和做工厂系统的印尼老哥,复刻了一套属于 MicroPython 的包管理系统
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
HIZYUAN1 天前
AG32 MCU Reference Manual(202401008修订版)使用手册
单片机·嵌入式硬件
guygg881 天前
STM32 汉字显示程序(标准外设库版本)
stm32·单片机·嵌入式硬件
国科安芯2 天前
商业航天与航空安全场景下抗辐射 MCU 选型、应用实践及发展趋势
单片机·嵌入式硬件·无人机·cocos2d·risc-v