精华内容
下载资源
问答
  • stm32 usb虚拟串口收发数据
    千次阅读
    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 */
    }
    
    

    参考资料:

    stm32cube配置usb虚拟串口功能配置方法

    更多相关内容
  • 本文件是STM32 USB串口最新驱动, 支持WIN7/WIN8和WIN10. 本人已在WIN10下测试通过, 可正常识别使用.内有详细使用说明文档.
  • 如题
  • STM32 usb虚拟串口通信

    2019-04-17 15:31:05
    STM32 usb虚拟串口实验,本例程是使用正点原子STM32F103 MINI板,通过usb虚拟串口实现PC与下位机之间收发数据
  • 前段时间调试基于STM32F4/F7系列的usb虚拟串口,我的win7系统不知道啥情况一直装不上去。今天试了好长时间,有了方法。 1:先安装VCP_V1.4.0_Setup.exe,安装时候注意安装在那个位置,比如我的地方是C:\Program ...
  • STM32 USB虚拟串口

    2020-08-11 05:11:55
    串口调试在项目中被使用越来越多,串口资源的紧缺也变的尤为突出。很多本本人群,更是深有体会...本章节来简单概述STM32低端芯片上的USB虚拟串口的移植。在官方DEMO中已经提供了现成的程序,这里对修改方法做简单说明。
  • stm32 USB虚拟串口驱动 全系列兼容。支持win7,win8 ,win10. 我是win10的系统,之前网上找的驱动都安装不上。也有说win10自带驱动,但我识别出来是打叹号的不能用。后来找到这个,按装完后,能正常使用了。分享给...
  • 高级例程-基于STM32 USB 虚拟串口 控制IO 端口
  • STM32 USB 虚拟串口

    2015-12-04 15:54:03
    STM32开发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...

    文件名大小更新时间

    实验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

    展开全文
  • stm32USB虚拟串口电脑端驱动,stmcdc.inf,设备管理器可点击安装*.inf文件。文件内可更改串口设备驱动描述符等等。已测试通过。 各位拿去使用。
  • STM32F103RCT6的USB虚拟串口驱动代码,可以实现收发数据,在正点原子的USB虚拟串口实现基础上改造,然后枚举成CH340设备,win7装上CH340的驱动就可以用了。
  • 一款基于stm32单片机的虚拟串口移植文件,只需要按照里面的说明进行操作,便能轻轻松松把stm32虚拟串口移植成功,文件内还包含了需要用到的上位机。
  • STM32 USB虚拟串口驱动源码文档,包含win7 win8驱动,程序源码,测试源码
  • stm32usb虚拟串口驱动

    2021-05-14 15:38:12
    stm32usb虚拟串口驱动是针对win7 64位系统打造的专用驱动程序,该驱动主要用于解决在运行一些设备是提示无示使用的问题,安装后就可以正常使用了,有需要的朋友快快下载吧。驱动安装说明usb虚拟串口缺失文件和驱动X...

    stm32usb虚拟串口驱动是针对win7 64位系统打造的专用驱动程序,该驱动主要用于解决在运行一些设备是提示无示使用的问题,安装后就可以正常使用了,有需要的朋友快快下载吧。

    驱动安装说明

    usb虚拟串口缺失文件和驱动X64位系统用

    安装驱动前先不要连接usb线,将下载的文件解压:

    将mdmcpq.inf复制到c:/windows/inf/里面去

    将usbser.sys复制到C:/windows/system32/drivers/里面去

    安装驱动软件VCP_V1.3.1_Setup_x64.exe,64位机安装X64

    然后重新插入usb线,并在设备管理器界面右键选更新驱动

    使用说明

    首先打开官方demo我们开始进行移植,第一步复制我们可用的文件,操作如下:

    Projects\Virtual_COM_Port文件夹下,复制红线部分

    5b299f6ed515ebd2cb2c340c644fe2a0.png10b021de6d40a68e84addbebd7094748.png

    我为了方便演示统放在usb/src文件夹下:

    349509386ddded7aa04896b29765f1e3.png

    现在复制USB的库文件,这些文件不需要我们修改:

    d1c3157c255e5cb78d4242fba2f7d352.png

    上图中的文件统一放在usb/lib文件夹下:

    c865e4752d8f613166b7d0334aa896c9.png

    好了现在所需要的文件我们以复制完了。这里先讲一下DEMO程序的主要工作流程:

    df086b1c93eb6af1de173a9327b2c350.png

    由上图可知,PC通过虚拟串口发送数据到STM32 usb口,STM32再通过usart1发送数据到PC串口。我们做项目时,只用USB虚拟串口即可。所以我们现在需要把串口发送部分删除。把USB做为一个COM口来使用。我们要如何使用这个USB口呢?demo中是把USB发送数据做了一个缓存,先把要发送的数据存入缓存中,然后由USB自动发送出去。而接收部分是直接通过串口透传。我们在应用时就需要用到两个FIFO,1是发送,这个和demo方式是样;2是接收,接收也做一个缓存,我们通过查询来判断是否收到新数据。

    使用教程作者:Hiker天下

    展开全文
  • 近几天调试usb虚拟串口的程序,发现一些问题以及解决方法。和大家共享 。
  • STM32F103通过USB口与上位机通信:通过一根USB线既能供电也能与上位机通信 在Linux下生成/dev/ttyACM0 参考了文档:https://www.cnblogs.com/hiker-blogs/p/stm32_usb.html
  • stm32usb虚拟串口驱动是windows7系统适用的stm32串口驱动,缺少该驱动的是无法正常使用的,有需要的朋友可以下载,温馨提示本驱动仅支持64位系统。安装说明usb虚拟串口缺失文件和驱动X64位系统用安装驱动前先不要...
  • 基于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时,根据数据包大小分包接收,如果没有设计专门的接收缓存,必须接收完成才能发送。否则,可能会造成后面数据覆盖前面的数据。

    展开全文
  • 支持USB虚拟串口;6各串口均已启用DMA及空闲中断,支持不定长度数据接收;可通过CubeMx裁剪,裁剪后只需编译时删去极少量与删去硬件资源相关的代码即可移植使用;默认使用片外8M晶振,可在CubeMx更改。需要Hal库...
  • STM32 USB虚拟串口驱动

    2018-03-11 14:48:21
    STM32 USB虚拟串口驱动............................................................................................
  • STM32 USB虚拟串口移植

    2016-05-23 16:50:52
    STM32 USB虚拟串口移植
  • stm32虚拟串口,可以和上位机通讯,不需要修改,直接使用
  • STM32利用STM32CUBEMX快速实现USB虚拟串口回环测试 目录STM32利用STM32CUBEMX快速实现USB虚拟串口回环测试1、配置时钟2、开启USB3、开启USB设备:虚拟串口4、生成工程5、修改代码实现回环收发数据测试 环境: STM...
  • 本帖最后由 wjandsq 于 2014-12-25 21:07 编辑【原创】计算机中USB串口列表、友好名称及端点号的查找方法一、获得计算机的串口列表,一般用两种方法:1. 循环法 1-256, 用Windows API一个个打开,返回不存在信息的...
  • stm32 USB 虚拟串口

    2012-09-12 16:42:58
    stm32 USB 虚拟串口,源码资料,方便广大学习stm32 USB的网友学习。
  • STM32 USB 虚拟串口驱动

    2022-03-18 22:58:08
    STM32 USB 虚拟串口驱动

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,841
精华内容 736
关键字:

stm32usb虚拟串口