这样,用户可以使用串口调试工具(如串口助手)与STM32进行通信。 2.3 STM32的USB功能 STM32部分型号集成了USB外设,支持多种USB设备类,其中包括CDC(Communication Device Class)类,该类可以实现USB虚拟串口通信。CDC类定义了一套通信协议,使得设备可以模拟串口的功能,包括数据的发送和接收
USB虚拟串口,简称VCP,是Virtual COM Port的简写,它是利用 USB的 CDC类来实现的一种通信接口。我们可以利用STM32自带的USB功能,来实现一个USB虚拟串口,从而通过USB,实现电脑与STM32的数据互传。 上位机无需编写专门的USB程序,只需要一个下载虚拟串口驱动程序+串口调试助手即可调试,非常实用。 (虚拟串口启动在Win7、...
在接口配置中启用USB,选择Device Only模式。 2.4 使用USB设备库 在中间件配置中启用USB_DEVICE库,并选择CDC类(Communication Device Class Virtual Port Com)。 3. 代码实现 3.1 包含USB接口头文件 在main.c文件中包含USB接口的头文件: #include "usbd_cdc_if.h" 3.2 模拟USB插拔 为了避免调试时频繁插拔USB线,...
usb_device.c里面仅包含一个USB设备函数初始化函数 MX_USB_DEVICE_Init(),在程序开始时调用。 usbd_cdc_if.c为USB的CDC类应用层文件,里面包含虚拟串口的接收,发送和控制等函数。 usb_desc.c包含USB的描述符,以及USB枚举处理等函数。 usb_conf.com为USB管脚配置文件,包含引USB引脚初始化以及参数设置,中断回调函...
在虚拟串口接收函数中,将接收到数据通过虚拟串口原样发送出去: //函数位于usbd_cdc_if.c文件中 static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ //接收到的数据发送回去,此行代码手动添加,其余均自动生成!
cmd为usb cdc的控制命令,pbuf为数据接收指针,length为数据长度。当cmd为0x20时为设置虚拟串口波特率;...
USB虚拟串口的接收采用了中断方式,芯片接收到数据后中断回调函数会调用CDC_Receive_FS()函数接收数据,然后将数据放到接收缓存中。但是软件没有提供直接获得数据和个数的接口。所以我采取了一种简单暴力的方式来获取数据和数据个数。 收到数据后,数据的缓存指针通过参数Buf传进来,数据个数通过参数Len传进来。上面三个ex...
6、实现USB转串口功能 环境: STM32F103RB STM32CUBEIDE1.5.1 1、配置时钟 2、开启USB 3、开启USB设备:虚拟串口 4、生成工程 5、修改代码实现回环收发数据测试 在usbd_cdc_if.c文件中新定义一个结构体: USBD_CDC_LineCodingTypeDef USBD_CDC_LineCoding = ...
USBD_CDC_LineCodingTypeDef USBD_CDC_LineCoding = { 115200, // 默认波特率 0X00, // 1...
35.1 USB 虚拟串口简介 35.2 硬件设计 35.3 软件设计 35.4 下载验证 35.1 USB 虚拟串口简介 USB 虚拟串口,简称 VCP,是 Virtual COM Port 的简写,它是利用 USB 的 CDC 类来实现的一种通信接口。 我们可以利用 STM32 自带的 USB 功能,来实现一个 USB 虚拟串口,从而通过 USB,实现电脑与 STM32 的数据互传。上...