-
2020-08-02 17:03:24
stm32 usb虚拟串口收发数据
1.stm32 usb虚拟串口发送数据函数
CDC_Transmit_FS( rxData, rxLen );
2.stm32 usb虚拟串口接收数据代码(可接收任意长度数据,最大接收长度4096)
#define USB_MAX_RECEIVE_LEN 4096 uint8_t rxData[USB_MAX_RECEIVE_LEN] = {0}; uint32_t rxLen = 0; extern USBD_HandleTypeDef hUsbDeviceFS; /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USB_DEVICE_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ //CDC_Receive_FS(rxData, &rxLen); if( rxLen > 0 ){ HAL_Delay(10); CDC_Transmit_FS( rxData, rxLen );//通过usb虚拟串口发送回去 rxLen = 0; } } /* USER CODE END 3 */ } static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ extern uint8_t rxData[USB_MAX_RECEIVE_LEN] ; extern uint32_t rxLen ; __disable_irq(); for( uint32_t i = 0; i < *Len; i ++ ){ rxData[rxLen+i] = Buf[i]; } rxLen += *Len; __enable_irq(); USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); USBD_CDC_ReceivePacket(&hUsbDeviceFS); return (USBD_OK); /* USER CODE END 6 */ }
参考资料:
更多相关内容 -
STM32 usb虚拟串口通信
2019-04-17 15:31:05STM32 usb虚拟串口实验,本例程是使用正点原子STM32F103 MINI板,通过usb虚拟串口实现PC与下位机之间收发数据 -
stm32 usb虚拟串口 程序问题的讨论
2020-08-02 13:27:46近几天调试usb虚拟串口的程序,发现一些问题以及解决方法。和大家共享 。 -
STM32 USB虚拟串口 STM32平台 USB虚拟串口 实现通讯特别好用(STM32 USB V uart STM32 USB V uart) - 下载 -...
2021-06-04 13:01:50文件名大小更新时间实验48 USB虚拟串口实验\CORE\core_cm3.c172732010-06-07实验48 USB虚拟串口实验\CORE\core_cm3.h857142011-02-09实验48 USB虚拟串口实验\CORE\startup_stm32f10x_hd.s155032011-03-10实验48 USB...文件名大小更新时间
实验48 USB虚拟串口实验\CORE\core_cm3.c172732010-06-07
实验48 USB虚拟串口实验\CORE\core_cm3.h857142011-02-09
实验48 USB虚拟串口实验\CORE\startup_stm32f10x_hd.s155032011-03-10
实验48 USB虚拟串口实验\HARDWARE\KEY\key.c18272015-03-20
实验48 USB虚拟串口实验\HARDWARE\KEY\key.h11862015-03-19
实验48 USB虚拟串口实验\HARDWARE\LCD\font.h350162015-03-13
实验48 USB虚拟串口实验\HARDWARE\LCD\lcd.c853632015-04-24
实验48 USB虚拟串口实验\HARDWARE\LCD\lcd.h75292015-04-24
实验48 USB虚拟串口实验\HARDWARE\LED\led.c12982012-09-13
实验48 USB虚拟串口实验\HARDWARE\LED\led.h6382012-09-13
实验48 USB虚拟串口实验\keilkilll.bat3992011-04-23
实验48 USB虚拟串口实验\OBJ\USB_VIRTURAL_COM.hex1365812015-03-26
实验48 USB虚拟串口实验\README.TXT24672015-03-23
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\misc.h89822011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_adc.h216902011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_bkp.h75552011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_can.h275592011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_cec.h65732011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_crc.h21622011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_dac.h152332011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_dbgmcu.h38182011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_dma.h207542011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_exti.h68242011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_flash.h254452011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_fsmc.h270162012-08-25
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_gpio.h201752011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_i2c.h300292011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_iwdg.h38282011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_pwr.h43832011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_rcc.h304522011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_rtc.h38572011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_sdio.h218632011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_spi.h177252011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_tim.h524272011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_usart.h165482011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\inc\stm32f10x_wwdg.h29662011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\misc.c70462011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_adc.c472012011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_bkp.c84632011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_can.c451032011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_cec.c116562011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_crc.c33472011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_dac.c190872011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_dbgmcu.c51492011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_dma.c296072011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_exti.c69592011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_flash.c625512011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_fsmc.c354842012-08-26
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_gpio.c232212011-03-11
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_i2c.c457812011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_iwdg.c49162011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_pwr.c87592011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_rcc.c512712011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_rtc.c85982011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_sdio.c289332011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_spi.c302242011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_tim.c1091592011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_usart.c383082011-03-10
实验48 USB虚拟串口实验\STM32F10x_FWLib\src\stm32f10x_wwdg.c57352011-03-10
实验48 USB虚拟串口实验\SYSTEM\delay\delay.c79302015-05-19
实验48 USB虚拟串口实验\SYSTEM\delay\delay.h19912015-05-19
实验48 USB虚拟串口实验\SYSTEM\sys\sys.c8762015-03-12
实验48 USB虚拟串口实验\SYSTEM\sys\sys.h28042015-03-23
实验48 USB虚拟串口实验\SYSTEM\usart\usart.c50862015-03-23
实验48 USB虚拟串口实验\SYSTEM\usart\usart.h12802012-09-13
实验48 USB虚拟串口实验\USB\CONFIG\hw_config.c68142015-03-16
实验48 USB虚拟串口实验\USB\CONFIG\hw_config.h17272015-01-29
实验48 USB虚拟串口实验\USB\CONFIG\platform_config.h18632015-01-28
实验48 USB虚拟串口实验\USB\CONFIG\usb_conf.h40012013-01-22
实验48 USB虚拟串口实验\USB\CONFIG\usb_desc.c73502015-03-05
实验48 USB虚拟串口实验\USB\CONFIG\usb_desc.h31522015-01-29
实验48 USB虚拟串口实验\USB\CONFIG\usb_endp.c46032015-03-05
实验48 USB虚拟串口实验\USB\CONFIG\usb_istr.c67382013-01-22
实验48 USB虚拟串口实验\USB\CONFIG\usb_istr.h28212013-01-22
实验48 USB虚拟串口实验\USB\CONFIG\usb_prop.c140112015-01-28
实验48 USB虚拟串口实验\USB\CONFIG\usb_prop.h37042013-01-22
实验48 USB虚拟串口实验\USB\CONFIG\usb_pwr.c80982015-01-28
实验48 USB虚拟串口实验\USB\CONFIG\usb_pwr.h24592013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_core.h96432013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_def.h30452013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_init.h27722013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_int.h19312013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_lib.h20532013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_mem.h20482013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_regs.h312402013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_sil.h20582013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\inc\usb_type.h19992013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\src\usb_core.c313642013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\src\usb_init.c33212013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\src\usb_int.c63102013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\src\usb_mem.c37182013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\src\usb_regs.c293982013-01-22
实验48 USB虚拟串口实验\USB\STM32_USB-FS-Device_Driver\src\usb_sil.c44872013-01-22
实验48 USB虚拟串口实验\USER\JLinkSettings.ini6712015-03-12
实验48 USB虚拟串口实验\USER\main.c24202015-03-24
实验48 USB虚拟串口实验\USER\stm32f10x.h6339412011-03-10
实验48 USB虚拟串口实验\USER\stm32f10x_conf.h32362015-03-12
实验48 USB虚拟串口实验\USER\stm32f10x_it.c24182011-11-13
实验48 USB虚拟串口实验\USER\stm32f10x_it.h19832011-04-04
实验48 USB虚拟串口实验\USER\system_stm32f10x.c365772011-04-04
-
STM32F4USB全速虚拟串口例程--1MB/s
2015-10-24 14:47:13STM32F407的虚拟串口例程,速度可达到1MB/s.只需修改usbd_desc.c中的端口,usbd_cdc_core.c中的描述符和main函数中的内容即可修改为自己板子的程序 -
STM32F103实现虚拟串口,进行串口通信,实现了USB通信
2018-07-10 09:36:27STM32F103实现虚拟串口,进行串口通信,实现了USB通信 STM32F103实现虚拟串口,进行串口通信,实现了USB通信 STM32F103实现虚拟串口,进行串口通信,实现了USB通信 STM32F103实现虚拟串口,进行串口通信,实现了USB... -
STM32 USB虚拟串口通信
2012-10-28 19:15:53STM32 USB虚拟串口通信代码程序 可以参考此程序,从而了解拓展此部分应用 -
stm32做的的usb虚拟串口 直接使用stm32usb接口
2015-03-12 22:51:08stm32的虚拟串口,可以和上位机通讯,不需要修改,直接使用 -
STM32C8T6USB虚拟串口,stm32f103c8t6串口,C,C++
2021-09-10 18:25:22基于stm32F103C8 USB_HID设备 鼠标 键盘 虚拟串口 程序 -
STM32F103 USB虚拟串口通信
2018-08-01 18:49:53STM32F103通过USB口与上位机通信:通过一根USB线既能供电也能与上位机通信 在Linux下生成/dev/ttyACM0 参考了文档:https://www.cnblogs.com/hiker-blogs/p/stm32_usb.html -
STM32 USB虚拟串口波特率问题(含源码)
2021-01-31 19:55:52用过USB虚拟串口的朋友可能知道,要实现该功能,还存在以下问题: 1.电脑上设置的串口波特率不影响USB接口传输的速率。 2.怎样获取电脑上串口助手设置的波特率,以设置USART1使其波特率与串口助手一致。 波特率...之前的文章中介绍过STM32的USB接口虚拟串口的功能。《STM32CubeMX之USB从机》。本篇文章在此基础上,以STM32F407为例,介绍USB转串口功能的实现。
要实现USB转串口的功能,需要将单片机真实串口(这里以USART1为例)的收发数据与USB口进行交互。用过USB虚拟串口的朋友可能知道,要实现该功能,还存在以下问题:
1.电脑上设置的串口波特率不影响USB接口传输的速率。
2.怎样获取电脑上串口助手设置的波特率,以设置USART1使其波特率与串口助手一致。
波特率设置
其实STM32CubeMX生成的程序中已经提供了相关的接口,只需要用户自己实现即可。打开usbd_cdc_if.c文件,CDC_Control_FS函数中,添加如下程序。
其中上面的注释是系统生成的,根据注释添加相应的红框中的程序。LineCoding是一个结构体:
USBD_CDC_LineCodingTypeDef LineCoding =
{
115200, /* 波特率*/
0x00, /* 停止位-1*/
0x00, /* 校验 - none*/
0x08 /* 数据位 8*/
};
USBD_CDC_LineCodingTypeDef的格式也是系统定义好的。
添加完成后,在电脑的串口助手上更改波特率时,系统会调用这段程序,重新配置USART1的波特率,使两者保持一致。
剩下的功能就是数据转发,即将USB接收的数据通过USART1发送出去,将USART1接收的数据发送到USB接口。
USB数据转发到USART1
同样是在usbd_cdc_if.c文件中,修改USB接收函数CDC_Receive_FS。将原来的程序屏蔽,添加串口发送的程序。
添加串口发送完成中断回调函数(前提是使能串口发送中断):
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
USBD_CDC_ReceivePacket(&hUsbDeviceFS);
}
USART1数据转发到USB
本例程是通过中断方式接收USART1数据,并通过接收超时时间来判断一帧数据接收完成。当然也可以通过其它方式实现转发,例程只是简单实现功能。
添加串口中断回调函数:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
UserTxBufPtrIn++;
if(UserTxBufPtrIn == APP_RX_DATA_SIZE)//防止溢出
{
UserTxBufPtrIn = 0;
}
UR_Tick = 0;//接收计时器清零
UR_Flag = 1;//正在接收
HAL_UART_Receive_IT(huart, (uint8_t *)(UserTxBufferFS + UserTxBufPtrIn), 1);
}
判断一帧数据接收完成后,通过USB接口转发出去。
if(UR_Flag == 2)
{
UR_Flag = 0;
CDC_Transmit_FS(UserTxBufferFS, UserTxBufPtrIn);
UserTxBufPtrIn = 0;
}
通过以上设置,即可实现类似CH340等USB转串口芯片的功能。但STM32的USB接口功能更强大,可以实现USB复合设备,比如同时虚拟多个串口。以后有时间再做研究和大家分享。
源码下载(公众号不支持链接,需要复制出来):
链接:https://pan.baidu.com/s/1Xhb80g0a-H1uVpfdhyT5cw
提取码:swyl
欢迎关注公众号"嵌入式技术开发",大家可以后台给我留言沟通交流。如果觉得该公众号对你有所帮助,也欢迎推荐分享给其他人。
-
STM32F405RG_RTC+6个串口+USB虚拟串口配置代码
2020-10-12 19:02:16支持USB虚拟串口;6各串口均已启用DMA及空闲中断,支持不定长度数据接收;可通过CubeMx裁剪,裁剪后只需编译时删去极少量与删去硬件资源相关的代码即可移植使用;默认使用片外8M晶振,可在CubeMx更改。需要Hal库... -
STM32 USB虚拟串口收发任意长度字节例程
2020-05-03 00:56:27基于STM32CubeMX的USB虚拟串口实例详解,通过修改收发函数,实现在1024字节以内任意字节数目的收发功能STM32 USB虚拟串口收发任意长度字节例程
创建STM32 CubeMX工程
基于STM32 CubeMX进行开发,使用USB的高速模式(实际使用的是内部的phy芯片),用USART3串口进行打印调试,外设管脚配置如下
中断优先级配置如下:
系统时钟配置如下:
最后,在生成工程前,需要配置堆和栈的大小,这里建立配置都在0x600以上,否则USB识别的速度比较慢且可能出现不识别的情况。在这两个工程中,设置如下图所示
到这里,STM32 USB虚拟串口的底层搭建完成,点击生成代码即可,接下来进行虚拟串口的开发。代码修改
主函数不进行讲解,主要要修改将要讲解的两个函数,并在主函数中进行调用就可以实现USB的收发任意字节长度(协议允许范围内)的功能。
根据CubeMX生成的底层代码,USB CDC类提供接口函数存放在usbd_cdc_if.c文件中,其中包含CDC_Control_HS()、CDC_Receive_HS()和CDC_Transmit_HS()三个函数。根据USB 2.0协议,USB的数据包最大长度为64 Byte。此外,当USB采用分包接收时,若出现数据长度为64的整数倍,接收端无法接收到数据,出现这种现象的原因与USB传输协议有关(若接收到的数据包长不足最大包长时,则认为当前传输完成;等于最大包长没有被支持)。USB CDC虚拟串口要求支持任意字节长度(1024Byte以下)的数据传输,为解决这个问题,做如下修改(避开内部协议,有尝试修改内部协议后出现跑飞现象)。
修改发送函数。如数据包大于等于64字节,分包发送并且手动发送一个空包表示发送结束。
修改接收函数。采用标志位的形式,在其他地方进行接收处理,接收数据存放在Buf指向的内存中。
收发任意长度测试
发送长度为128byte的数据包,要求回传123byte,效果如下,准确回传。
发送128byte的数据包,要求回传128byte,效果如下,准确回传。
当数据包长度小于等于64时,不需要分包接收;当数据包长度大于64时,根据数据包大小分包接收,如果没有设计专门的接收缓存,必须接收完成才能发送。否则,可能会造成后面数据覆盖前面的数据。 -
STM32F4 USB虚拟串口VCP程序教程
2018-09-12 11:01:02STM32F4 USB虚拟串口VCP教程,是讲述怎么通过USB直接连接STM32 F4和电脑直接拿进行通讯 -
用STM32 USB虚拟串口替代UART
2022-05-15 21:53:36本文讲述如何用USB代替UART与电脑通信,用一根数据线取代UART转USB模块,帮你从杜邦线中解放。 -
STM32CubeMX | 快速实现STM32 USB虚拟串口功能(回环测试、USB转TTL的功能)
2021-03-17 16:59:15STM32利用STM32CUBEMX快速实现USB虚拟串口回环测试 目录STM32利用STM32CUBEMX快速实现USB虚拟串口回环测试1、配置时钟2、开启USB3、开启USB设备:虚拟串口4、生成工程5、修改代码实现回环收发数据测试 环境: STM... -
STM32 USB虚拟串口 死掉的问题
2021-08-10 07:36:00本帖最后由 wjandsq 于 2014-12-25 21:07 编辑【原创】计算机中USB串口列表、友好名称及端点号的查找方法一、获得计算机的串口列表,一般用两种方法:1. 循环法 1-256, 用Windows API一个个打开,返回不存在信息的... -
STM32F407 USB虚拟串口
2015-12-04 15:13:46STM32F407 USB虚拟串口 不下后悔 -
STM32使用USB虚拟串口+YMODEM实现IAP升级
2022-04-22 10:00:32USB虚拟串口 基于USB CDC可以将USB做成虚拟串口,这块ST已经给我们做好了,直接使用相关封装好的接口就可以了,具体使用参考: https://blog.csdn.net/mirco_mcu/article/details/106081950 这里就不再赘述了。注意... -
STM32 之 USB 虚拟串口
2020-10-26 16:48:28USB虚拟串口提供了绕过这个问题的一个简单的解决方案。 为了让USB被视为一个COM端口,USB设备必须根据通信设备类(CDC)规范来实现两个接口: 1.抽象控制模型通信,在端点中有1个中断... -
STM32 USB虚拟串口原理(上)
2020-11-09 23:42:17USB虚拟串口是使用USB的CDC类实现的一种通讯接口...使用STM32自带的USBslave功能在电脑上实现一个USB虚拟串口,在电脑上直接使用串口调试助手和STM32进行通讯。CDC为communication device class(virtual port com)。 ... -
STM32F407 USB通信程序 USB Device 虚拟串口 CDC类 Cubemx生成
2018-12-01 01:28:34STM32F407 USB通信源码,单片机做从设备,使用的CDC类进行数据传输,通信速率可接近理论极限值12Mbps,亲测可以使用! -
STM32F072B USB虚拟3串口
2018-10-17 16:01:29STM32F072B使用USB虚拟出3个串口,将虚拟出的串口分别连接到3个真使串口。 -
STM32F1与STM32CubeIDE快速入门-USB虚拟串口(CDC)
2022-05-14 12:32:44本文将详细介绍如何使用STM32CubeIDE中如何配置USB虚拟串口。 -
STM32 USB虚拟串口移植(RCT6、C8T6)
2021-05-13 23:21:24近期开发了一套小型龙门...使得串口控制的设备还要插杜邦线,非常不方便,于是想利用USB进行数据传输,最后选择了虚拟串口这个比较简单的方式完成了USB的串口通讯过程。现将调试过程做如下整理:1)选择STM32 RCT6/C... -
STM32 USB模拟一个串口和U盘存储器复合设备
2018-11-25 19:30:36STM32 USB模拟一个串口和U盘存储器复合设备,经调试测试通过,稍作修改,可以应用在产品上。 -
stm32 USB虚拟多个串口设备
2020-11-19 11:29:08问题2:两个串口同时打开才可以正常通信 原因:usb缓冲区数据未被上位机读走时,缓冲区满后会溢出,导致无法hcdc->TxState未清除。目前trick的方法是直接获取上位机串口开关状态,如果关闭不发送数据。 ... -
STM32H7 固件库版本导致的USB虚拟串口问题
2021-11-21 13:57:35使用STM32Cube配置USB全速Device,配置虚拟串口后,出现①电脑能枚举串口设备成功,但是无法使用串口助手打开串口;②在解决问题①后(使用串口助手成功通信),拔插USB无法枚举设备,重启STM32后第一次插入可以,第... -
STM32虚拟串口PC机驱动(配合USB虚拟串口例程使用
2015-04-21 11:40:49STM32虚拟串口PC机驱动(配合USB虚拟串口例程使用的),PC机驱动