搜索
bottom↓
回复: 101

在MINI STM32 板子上实现USB虚拟串口

  [复制链接]

出0入0汤圆

发表于 2011-6-27 06:51:45 | 显示全部楼层 |阅读模式

(原文件名:A6.jpg)
实验内容:通过STM32的USB端口在PC上虚拟一个COM口,当虚拟成功后,可通过串口调试软件

发送控制命令,去点亮板子上相应的LED灯,同时输出调试信息。

工程文件:点击此处下载 ourdev_652561TEJV6B.zip(文件大小:909K) (原文件名:虚拟串口.zip)

在PC机的设备管理器中可看到虚拟出的COM口

(原文件名:A14.JPG)

串口调试软件的输出状态

(原文件名:虚拟串口.JPG)
通过这个实验,可以扩展更多的通过USB端口的应用。最主要是它简单跟上位机通讯,直接可以用串口

调试软件,或者超级终端。有兴趣的网友可以再继续研究下。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-6-27 08:17:02 | 显示全部楼层
这个不错
STM32还没用过USB

出0入0汤圆

发表于 2011-6-28 16:22:22 | 显示全部楼层
楼主方便的话一起讨论关于USB虚拟串口的问题,已经纠结了一个星期了,问题是:怎么通过STM32103来产生一个CTS和DSR的信号给我们的PC上位机啊?急~~~~~~~~联系:414813968

出0入0汤圆

 楼主| 发表于 2011-6-28 19:20:43 | 显示全部楼层
我目前主要是通过USB的发送端和接收端,来交换数据的。在下位机没有涉及到串行通讯。这个实验之所以叫USB虚拟串口,只是上位机给用COM口的形式,通过USB这个硬件层,来收发数据的。

出0入0汤圆

发表于 2011-7-11 18:11:07 | 显示全部楼层
回复【楼主位】jiaxinhui
-----------------------------------------------------------------------

用你的例子改了一下。。但是我的下位机接不到上位机的数是怎么回事?!下位机给上位机发数可以收到。。。那个函数是接受上位机的数的函数哦?!

出0入0汤圆

发表于 2011-7-11 18:35:28 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-11 18:45:14 | 显示全部楼层
要装驱动吗?

出0入0汤圆

 楼主| 发表于 2011-7-11 20:04:12 | 显示全部楼层
回复【6楼】pengchhui
-----------------------------------------------------------------------
驱动要装的

出0入0汤圆

发表于 2011-7-11 22:45:19 | 显示全部楼层
USB 学习

出0入0汤圆

发表于 2011-7-12 20:52:17 | 显示全部楼层
回复【楼主位】jiaxinhui
-----------------------------------------------------------------------

我已经成功移植你的程序。。。谢谢楼主的指点了。。小弟还有一事相求。。就是我在单独调试串口的时候怎么上位机用串口调试工具收到的是乱码啊,不是我想发的0x43?!
我的代码如下:
#include "stm32f10x.h"
#include "stm32_eval.h"
#include <stdio.h>
USART_InitTypeDef USART_InitStructure;
void GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
}
static void Delay_ARMJISHU(__IO uint32_t nCount)
{
  for (; nCount != 0; nCount--);
}
int main(void)
{
  GPIO_Config();
  USART_InitStructure.USART_BaudRate = 115200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
  USART_Init(USART1,&USART_InitStructure );
  USART_Cmd(USART1, ENABLE);
  USART_ClearFlag(USART1,USART_FLAG_TC);
  printf("\n\rUSART Printf Example: retarget the C library printf function to the USART\n\r");
  while (1)
  {
    USART1->DR=0x43;
    while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
    Delay_ARMJISHU(10000);
  }
}

#ifdef  USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
  while (1)
  {
  }
}
#endif

出0入0汤圆

发表于 2011-7-12 22:34:38 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-7-13 08:39:58 | 显示全部楼层
路过学习

出0入0汤圆

 楼主| 发表于 2011-7-13 09:44:03 | 显示全部楼层
波特率设置的对吗?

出0入0汤圆

发表于 2011-7-13 12:28:29 | 显示全部楼层
回复【楼主位】jiaxinhui
-----------------------------------------------------------------------

我用的是您的USB虚拟串口的例子,程序已经调通了,谢谢了,可以发送“STM32Vrtual”用上位机串口调试工具能接受到“STM32Vrtual”了,
但是我想发送一个十进制的数组a[5]={1,2,3,4,5};却不知道怎么定义,发送函数USB_Send_Data只能发送unsigned char型的数据,我应该怎么改程序啊?!
void USB_Send_Data(u8* data_buffer)
{
  count_in=60;
  UserToPMABufferCopy(data_buffer, ENDP1_TXADDR, count_in);
  SetEPTxCount(ENDP1, count_in);
  SetEPTxValid(ENDP1);
}
int main(void)
{
  Set_System();
  Set_USBClock();
  USB_Interrupts_Config();
  USB_Init();
  while (1)
  {
    USB_Send_Data("STM32Vrtual\r\n");
  }
}

出0入0汤圆

发表于 2011-7-13 14:12:15 | 显示全部楼层
void USB_Send_Data(u8* data_buffer, u8 len)  
{  
  count_in=len;  
  UserToPMABufferCopy(data_buffer, ENDP1_TXADDR, count_in);  
  SetEPTxCount(ENDP1, count_in);  
  SetEPTxValid(ENDP1);  
}  

int main(void)  
{  
  u8 a[5] = {1, 2, 3, 4, 5};
  Set_System();  
  Set_USBClock();  
  USB_Interrupts_Config();  
  USB_Init();  
  while (1)  
  {  
    USB_Send_Data(a, 5);  
  }  
}

出0入0汤圆

发表于 2011-7-13 14:36:30 | 显示全部楼层
回复【14楼】jeames 老酒
-----------------------------------------------------------------------

十分感谢您。。很好用。。我做这个的目的就是为了模拟采集的AD,给上位机发100数,用LabView去分析。。帮了我很大的忙。谢谢。。

出0入0汤圆

发表于 2011-7-13 15:56:17 | 显示全部楼层
回复【14楼】jeames 老酒
-----------------------------------------------------------------------
我想发这么多的数,为什么上位机只显示出来42个(这42个十六进制的数:48 4D 59 70 84 64 52 58 6B 5A 5A 67 6C 68 56 50 47 48 4A 4D 51 56 59 58 50 57 5A 5D 67 68 60 5D 5C 5C 55 57 5C 5D 58 52 53 4E 与数组a[]的钱42个都能对应上),可是后面的就没有了,这么回事??

u8 a[] ={72,77,89,112,132,100,82,88,107,90,90,103,108,104,86,80,71,72,74,77,81,86,89,88,80,87,90,93,103,104,96,93,92,92,85,87,92,93,88,82,83,78,76,75,80,86,86,90,90,89,88,87,91,93,96,99,99,97,92,89,86,84,84,86,87,84,83,81,80,79,79,84,88,91,92,93,92,91,90,91,94,96,96,94,93,89,84,82,82,83,84,84,85,84,83,82,82,84,87,92,94,95,95,93,92,91,91,91,92,92,90,88,85,82,80,81,82,83,85,86,86,85,85,87,89,91,94,95,95,94,92,90,89,88,89,89,89,87,85,83,81,81,82,84,86,88,89,89,88,88,90,91,93,95,95,94,92,89,87,86,86,86,86,86,85,83,82,82,82,85,87,89,91,91,91,90,91,91,92,93,93,92,90,89,86,84,84,84,85,85,85,85,84,84,84,};

出0入0汤圆

发表于 2011-7-13 17:14:15 | 显示全部楼层
新人学习中。。。

出300入477汤圆

发表于 2011-7-15 09:17:57 | 显示全部楼层
ST的虚拟串口驱动好像有个限制,对这个串口的每个Write只能写入64个字节以内,如果超过了就有问题(好像这也是USB协议的限制??)

出0入0汤圆

发表于 2011-7-15 14:31:43 | 显示全部楼层
回复【18楼】redroof
-----------------------------------------------------------------------

那我想用虚拟串口去发送100或者更多的个数怎么发?!总不能42个42个发吧?!

出0入0汤圆

发表于 2011-7-15 16:51:42 | 显示全部楼层
留着参考,TKS

出0入0汤圆

发表于 2011-7-15 17:23:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-7-15 18:31:20 | 显示全部楼层
参考一下 好东东

出0入0汤圆

发表于 2011-7-17 20:01:57 | 显示全部楼层
马克

出0入0汤圆

发表于 2011-7-19 16:28:57 | 显示全部楼层
用的USB的虚拟串口程序向上位机一直传输数据,函数:
void USB_Send_Data(u8* data_buffer, u16 len)  
{     
  count_in=len;     
  UserToPMABufferCopy(data_buffer, ENDP1_TXADDR, count_in);     
  SetEPTxCount(ENDP1, count_in);
  SetEPTxValid(ENDP1);     
}
就是单纯的一直发数据。。不会出现丢数、乱数、串数的情况。。用不用像串口那样做校验什么、反馈什么的啊?!做的话我需要加什么程序呢?!

出0入0汤圆

发表于 2011-7-19 20:53:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-14 11:53:49 | 显示全部楼层
好帖子,楼主能提供下驱动吗?

出0入0汤圆

发表于 2011-9-14 12:38:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-14 12:39:17 | 显示全部楼层
马克思.......我正要学这个..........

出0入0汤圆

发表于 2011-9-18 21:56:34 | 显示全部楼层
mark以下

出0入0汤圆

发表于 2011-9-27 21:58:29 | 显示全部楼层
原理图有没有,usb_CK用哪个IO控制的回复【楼主位】jiaxinhui  
-----------------------------------------------------------------------

出0入0汤圆

发表于 2011-10-1 10:17:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-9 11:10:24 | 显示全部楼层
刚刚用到虚拟串口,学习了

出0入0汤圆

 楼主| 发表于 2011-10-12 17:13:51 | 显示全部楼层
最近做了些STM32核心板点击此处下载 ourdev_684293AH405P.pdf(文件大小:404K) (原文件名:STM32核心板.pdf)

出0入0汤圆

 楼主| 发表于 2011-10-13 19:08:13 | 显示全部楼层

(原文件名:板子图片.jpg)

出0入0汤圆

发表于 2011-12-19 00:11:40 | 显示全部楼层
MARk

出0入0汤圆

发表于 2011-12-19 20:20:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-20 10:40:47 | 显示全部楼层
mark一下,留着研究

出0入0汤圆

发表于 2011-12-21 22:21:59 | 显示全部楼层
轻轻;

出0入0汤圆

发表于 2011-12-21 22:26:33 | 显示全部楼层
轻轻;

出0入0汤圆

发表于 2012-6-25 20:06:08 | 显示全部楼层
楼主有做过USB虚拟网口吗??

出0入0汤圆

发表于 2012-7-11 14:18:06 | 显示全部楼层
感谢楼主,我用上面的程序可以发送字符串,也可以发送u8类型的数组(0~255),我用的12位的ADC采集,存储的是int类型,也相当于2个char类型,数值范围是0~4096。

定义一个int数组先模拟....
int main(void)
{
  u16 a[4] = {2500, 3200, 4200,4095}; //int类型的数组
  Init_System();//系统初始化  
  Set_USBClock();//设置USB时钟
  USB_Interrupts_Config(); //配置USB中断
  USB_Init();//初始化USB  
while (1)
  {         
      USB_Send_Data(a, 4);  
  }


void USB_Send_Data(u16* data_buffer, u8 len)  //调用的此函数发送数组
{  
  count_in=len;  
  UserToPMABufferCopy(data_buffer, ENDP1_TXADDR, count_in);  
  SetEPTxCount(ENDP1, count_in);  
  SetEPTxValid(ENDP1);  
}


并且UserToPMABufferCopy()和SetEPTxCount()和SetEPTxValid(),这三个函数的参数定义都改成u16;
#define ENDP1   ((u8)1)改成#define ENDP1   ((u16)1);
编译还是报错?
不知是何原因,怎么设置才能发送int类型的数组呢?

出0入0汤圆

发表于 2012-8-2 16:18:44 | 显示全部楼层
我已经驱动可以了  实现你的功能 是不是改一下IO口的设置呢? 因为板子不同啊   能说说怎么改不  刚学直接跳到这边    有点乱

出0入0汤圆

发表于 2012-8-30 17:02:50 | 显示全部楼层
想问一下 要是想修改你这个工程验证一下 怎么修改啊  是不是只要修改  与STM32相关的三个管脚就可以了啊  分别是:/* Configure USB Connect LED pin */  /* Configure USB pull-up pin */和串口管脚就可以了吗?

出0入0汤圆

发表于 2012-11-4 20:10:40 | 显示全部楼层
这个例子在 STM32F103VBT6 上可以, USB 上拉是 PD.8 ; 在 STM32F103C8T6 上电脑没反应, USB 上拉是 PB.8. C8T6 的板子用 HID 的程序是可以的, 说明板子没问题的.
感觉很奇怪?

出0入9汤圆

发表于 2012-11-4 22:18:49 | 显示全部楼层
留名备用

出0入0汤圆

发表于 2012-12-3 16:09:39 | 显示全部楼层
asdy00000 发表于 2011-7-11 18:11
回复【楼主位】jiaxinhui
-----------------------------------------------------------------------

你好,我用ministm32板子运行此程序,下位机能正确发送数据到上位机,但下位机无法收到数据上位机的数据,请问你知道问题在哪吗?

出0入0汤圆

发表于 2012-12-5 15:58:57 | 显示全部楼层
我在野火上的开发板上移植没反应.开发板的MCU是STM32F103VET6,他的USB控制管脚是PE3,下载此代码改的地方是 /* PD.09 used as USB pull-up */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

出0入0汤圆

发表于 2012-12-5 16:00:33 | 显示全部楼层
我在野火上的开发板上移植没反应.开发板的MCU是STM32F103VET6,他的USB控制管脚是PE3,下载此代码改的地方是
/* PD.09 used as USB pull-up */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
-------------------------------------------------------------------------------还有这里
void USB_Cable_Config (FunctionalState NewState)
{
  if (NewState != DISABLE)
  {
    GPIO_ResetBits(GPIOE, GPIO_Pin_3);
  }
  else
  {
    GPIO_SetBits(GPIOE, GPIO_Pin_3);
  }
}

我想请教一下,为什么下载到开发板里面一点反应都没有,请知道的大侠指教!!!!!!!!!!!!
  GPIO_Init(GPIOE, &GPIO_InitStructure);

出0入0汤圆

发表于 2012-12-5 16:03:02 | 显示全部楼层
我在野火上的开发板上移植没反应.开发板的MCU是STM32F103VET6,他的USB控制管脚是PE3,下载此代码改的地方是
/* PD.09 used as USB pull-up */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;

  GPIO_Init(GPIOE, &GPIO_InitStructure);-------------------------------------------------------------------------------还有这里
void USB_Cable_Config (FunctionalState NewState)
{
  if (NewState != DISABLE)
  {
    GPIO_ResetBits(GPIOE, GPIO_Pin_3);
  }
  else
  {
    GPIO_SetBits(GPIOE, GPIO_Pin_3);
  }
}

我想请教一下,为什么下载到开发板里面一点反应都没有,请知道的大侠指教!!!!!!!!!!!!

出0入0汤圆

 楼主| 发表于 2013-1-17 22:50:57 | 显示全部楼层
楼上的几位遇到的问题,可以参看这个帖:http://www.amobbs.com/thread-5461271-1-1.html

出0入0汤圆

发表于 2013-1-24 15:42:20 | 显示全部楼层
强悍哦,呵呵,我最近也在学习这个东东

出0入0汤圆

发表于 2013-2-21 20:15:24 | 显示全部楼层
楼主是怎么调试这个程序的。我用的JLINK,接到PC的USB口。一旦单开JLINK想调试,虚拟串口就不见了。不开jlink,虚拟串口就还在。但是程序输出有问题。

出0入21汤圆

发表于 2013-2-21 20:36:10 | 显示全部楼层
先记号,改天再来

出0入0汤圆

 楼主| 发表于 2013-2-25 16:07:51 | 显示全部楼层
znsword 发表于 2013-2-21 20:15
楼主是怎么调试这个程序的。我用的JLINK,接到PC的USB口。一旦单开JLINK想调试,虚拟串口就不见了。不开jli ...

PC端的驱动 装了吗?

出0入0汤圆

发表于 2013-2-25 17:16:16 | 显示全部楼层
jiaxinhui 发表于 2013-2-25 16:07
PC端的驱动 装了吗?

装了。现在的问题是KEIL下面可以。IAR下面找不到驱动。已经换RVMDK了。另外,不同的串口通讯端输出也不一样。

出0入0汤圆

 楼主| 发表于 2013-3-1 22:01:46 | 显示全部楼层
znsword 发表于 2013-2-25 17:16
装了。现在的问题是KEIL下面可以。IAR下面找不到驱动。已经换RVMDK了。另外,不同的串口通讯端输出也不一 ...

这跟编译器有关系吗

出0入0汤圆

发表于 2013-3-2 17:33:55 | 显示全部楼层
jiaxinhui 发表于 2013-3-1 22:01
这跟编译器有关系吗

我也觉着应该没有关系。可是不知道为什么IAR+JLINK V8每次启动都把设备识别为“unknown usb device”,而KEIL就不会。

出0入0汤圆

发表于 2013-3-8 11:46:49 | 显示全部楼层
收藏。。。。

出0入0汤圆

 楼主| 发表于 2013-3-8 13:21:50 | 显示全部楼层

出0入20汤圆

发表于 2013-3-9 18:02:53 | 显示全部楼层
一直要试一下的。

出0入0汤圆

发表于 2013-3-18 08:54:25 | 显示全部楼层
mark一下

出0入0汤圆

发表于 2013-4-6 17:25:34 | 显示全部楼层
mark......

出0入0汤圆

发表于 2013-4-24 20:29:07 | 显示全部楼层
jiaxinhui 发表于 2011-7-11 20:04
回复【6楼】pengchhui
-----------------------------------------------------------------------
驱动要 ...

楼主这个驱动怎么弄?

出0入0汤圆

 楼主| 发表于 2013-4-24 20:59:19 | 显示全部楼层
也无风雨赵 发表于 2013-4-24 20:29
楼主这个驱动怎么弄?


你到我这个帖子中找,里面有一个基于STM32 MINI板的高级实验例程,通过虚拟串口,采集板子上的电压值,显示到串口调试软件或超级终端上。
驱动就在工程文件中http://www.amobbs.com/thread-5521632-1-1.html

出0入0汤圆

发表于 2013-4-24 21:34:11 | 显示全部楼层
jiaxinhui 发表于 2013-4-24 20:59
你到我这个帖子中找,里面有一个基于STM32 MINI板的高级实验例程,通过虚拟串口,采集板子上的电压值,显 ...

嗯,好的,谢谢楼主了!

出0入0汤圆

发表于 2013-4-25 23:35:09 | 显示全部楼层
asdy00000 发表于 2011-7-13 12:28
回复【楼主位】jiaxinhui
-----------------------------------------------------------------------

请问一下把楼主的虚拟串口的程序改成符合自己板子的程序需要修改哪些地方?另外驱动只要那个stmcdc.inf文件就可以吗?

出0入0汤圆

发表于 2013-4-26 10:33:51 | 显示全部楼层
楼主,下载程序后pc机中显示unknown device,转那个inf文件好像也没用,是不是下位机的程序没有改好?应该改哪些地方?麻烦你了

出0入0汤圆

 楼主| 发表于 2013-4-26 12:08:45 | 显示全部楼层
也无风雨赵 发表于 2013-4-26 10:33
楼主,下载程序后pc机中显示unknown device,转那个inf文件好像也没用,是不是下位机的程序没有改好?应该 ...

你的USB D+ 线上拉1.5K的电阻了吗?

出0入0汤圆

发表于 2013-4-26 13:20:57 | 显示全部楼层
jiaxinhui 发表于 2013-4-26 12:08
你的USB D+ 线上拉1.5K的电阻了吗?

上拉了,最后直接用官网的源程序改的,可以看到串口了,不知道是咋回事

出0入0汤圆

 楼主| 发表于 2013-4-26 14:01:21 | 显示全部楼层
好了就行

出0入0汤圆

发表于 2013-4-26 15:58:48 | 显示全部楼层
jeames 发表于 2011-7-13 14:12
void USB_Send_Data(u8* data_buffer, u8 len)  
{  
  count_in=len;  

void USB_Send_Data(u8* data_buffer, u8 len)  发字符串正常,但是发送数组数据会乱码

出0入0汤圆

发表于 2013-4-26 16:20:14 | 显示全部楼层
谢谢楼主分享。

出0入0汤圆

发表于 2013-5-30 16:13:07 | 显示全部楼层

mark一下,留着研究

出0入0汤圆

发表于 2013-5-31 11:01:53 | 显示全部楼层
谢谢楼主,最近正在看STM32 USB 方面的资料,

出0入0汤圆

 楼主| 发表于 2013-7-9 14:42:19 | 显示全部楼层
sungngai 发表于 2013-4-26 15:58
void USB_Send_Data(u8* data_buffer, u8 len)  发字符串正常,但是发送数组数据会乱码 ...

这就奇怪了                                                                                                                                      

出0入0汤圆

发表于 2013-7-9 20:33:01 | 显示全部楼层
jiaxinhui 发表于 2013-7-9 14:42
这就奇怪了                                                                                         ...

正常了,忘了点Hex显示

出0入0汤圆

 楼主| 发表于 2013-7-10 08:22:14 | 显示全部楼层
sungngai 发表于 2013-7-9 20:33
正常了,忘了点Hex显示

呵呵,那就好     

出0入0汤圆

发表于 2013-7-17 11:40:03 | 显示全部楼层
太好了,感激不尽

出0入0汤圆

 楼主| 发表于 2013-7-31 17:06:16 | 显示全部楼层
llzzyy 发表于 2013-7-17 11:40
太好了,感激不尽

不客气                                   

出0入0汤圆

发表于 2013-8-11 10:51:54 来自手机 | 显示全部楼层
mark……
顶一个…

出0入0汤圆

发表于 2013-10-30 12:21:41 | 显示全部楼层
jiaxinhui 发表于 2011-6-28 19:20
我目前主要是通过USB的发送端和接收端,来交换数据的。在下位机没有涉及到串行通讯。这个实验之所以叫USB虚 ...

USB应该模拟成COM 几口才对?

出0入0汤圆

发表于 2013-10-30 12:24:42 | 显示全部楼层
好资料~~~

出0入0汤圆

 楼主| 发表于 2013-10-30 12:42:18 | 显示全部楼层
and001 发表于 2013-10-30 12:21
USB应该模拟成COM 几口才对?

COM口不是固定的,是系统在初次装驱动的时候,分配的。                                                                                

出0入0汤圆

发表于 2013-10-30 15:08:12 | 显示全部楼层
jiaxinhui 发表于 2013-10-30 12:42
COM口不是固定的,是系统在初次装驱动的时候,分配的。                                                ...

能否具体点?我看到很多STM32 USB模拟成串口的程序,就没看到是模拟到串口 几端口?
有点晕

出0入0汤圆

发表于 2013-11-8 13:48:18 | 显示全部楼层
mark 有用到收藏

出0入0汤圆

发表于 2013-11-22 14:37:50 | 显示全部楼层
请问楼主测试过虚拟串口的速率没?波特率最大可以设置成多少而稳定传输数据?

出0入0汤圆

发表于 2013-11-22 15:52:29 | 显示全部楼层
谢谢分享资料

出0入0汤圆

发表于 2013-11-26 19:02:45 | 显示全部楼层
收藏  
mark

出0入0汤圆

发表于 2013-11-26 19:58:22 | 显示全部楼层
有空试试!

出0入8汤圆

发表于 2013-11-26 21:15:38 | 显示全部楼层
非常不错啊

出0入0汤圆

 楼主| 发表于 2014-1-4 09:49:38 | 显示全部楼层

谢谢支持                                                                                                                          

出0入0汤圆

 楼主| 发表于 2014-3-4 16:18:54 | 显示全部楼层
                                                                                                

出0入0汤圆

 楼主| 发表于 2014-7-9 09:22:48 | 显示全部楼层
coding2011 发表于 2013-11-22 14:37
请问楼主测试过虚拟串口的速率没?波特率最大可以设置成多少而稳定传输数据? ...

虚拟串口,好像设置不了波特率。当时换了几种波特率,都可以正常通讯。

出0入0汤圆

发表于 2014-7-24 19:47:11 | 显示全部楼层
谢谢分享

出0入0汤圆

 楼主| 发表于 2014-8-9 10:13:05 | 显示全部楼层

不用谢!                                                                                      

出0入0汤圆

 楼主| 发表于 2014-11-27 11:07:59 | 显示全部楼层
                     

出0入0汤圆

发表于 2014-12-3 23:55:52 | 显示全部楼层
顶一个。。。。。。。。。。。。。。。。。。。

出0入0汤圆

发表于 2015-1-7 09:15:57 | 显示全部楼层
楼主,移植了你的程序后,可以正常收发,但是在不插USB和电脑连接的时候启动时会一直停在NOP_Process()这个程序这里,除非插上电脑切能正常连接的时候程序才会跳出NOP_Process(),继续往下运行的。

出0入0汤圆

发表于 2015-1-7 09:16:36 | 显示全部楼层
这个情况,不知楼主遇到过没?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-27 09:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表