USB虚拟串口,简称VCP,是Virtual COM Port的简写,它是利用 USB的 CDC类来实现的一种通信接口。我们可以利用STM32自带的USB功能,来实现一个USB虚拟串口,从而通过USB,实现电脑与STM32的数据互传。 上位机无需编写专门的USB程序,只需要一个下载虚拟串口驱动程序+串口调试助手即可调试,非常实用。 (虚拟串口启动在Win7、...
usb_device.c里面仅包含一个USB设备函数初始化函数 MX_USB_DEVICE_Init(),在程序开始时调用。 usbd_cdc_if.c为USB的CDC类应用层文件,里面包含虚拟串口的接收,发送和控制等函数。 usb_desc.c包含USB的描述符,以及USB枚举处理等函数。 usb_conf.com为USB管脚配置文件,包含引USB引脚初始化以及参数设置,中断回调函...
这里端点使用BULK传输,最大包长默认设置为64字节】,USB模块会做分包传输,将一批数据传输分成多个处理[...
1、本篇文章已经默认您已经会使用STM32CUBEMX生成CDC工程并测试通过了,如果你还不会可参考我的另一篇博客:STM32快速实现USB虚拟串口+回环测试+USB转TTL的功能 2、USB组合设备的编写需要具备一定的USB相关知识,如果你不了解,那么请先看一下我的这篇博客:STM32 USB相关知识扫盲 工程...
STM32 HAL库USB虚拟串口VCP发送64bytes倍数数据 电脑无法接收的解决方法 打开usbd_cdc_if.c文件,找到如下函数:uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len){ uint8_t result = USBD_OK;/* USER CODE BEGIN 7 */ USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsb...
常规的,我们解决这个感叹号的问题:首先IAR编译其对应的MCU的脚本文件icf文件中的 heap 改大些,保险一点0x1000(有些USB 类如Audio可能需要更大),发现没有起作用。经调试对比,在如下函数内添加如下代码,并解决编译问题后,即可正确安装驱动。4验证USBD CDC通信 简单的验证64个字节之内的发送与接收,修改函数...
启用USB接口 接口中启用USB,这里仅作为从设备使用(Device_Only); 使用USB设备库 中间件中启用USB_DEVICE库,使用CDC类(Communication Device Class Virtual Port Com); 参数设置主要与设备接口数量、电源、收发缓存等有关,一般默认即可; 设备描述主要为VID和PID以及其文本描述; ...
在STM32中,接口描述符也在USBD_CDC_CfgFSDesc大数组中。如其名字所言,用于设定接口相关属性的 字段如下 说明: 1)bInterfaceNumber:当一个配置有多个接口时,每个接口的编号都不相同,从0开始递增对一个配置的接口进行编号。这里需要注意,对照一下,配置描述符里面,支持多少个接口(这个域:bNumInterfaces)。
USB到STM32 USB CDC模式是指通过USB接口将计算机与STM32微控制器进行通信的一种方式。USB CDC (Communication Device Class)是一种USB设备类别,用...
USB_Tx_ptr = APP_Rx_ptr_out;USB_Tx_length = CDC_DATA_IN_PACKET_SIZE;APP_Rx_ptr_out += ...