关于虚拟串口软件 win7口

用虚拟串口进行串口调试 - CSDN博客
用虚拟串口进行串口调试
& & & & 由于现在的笔记本电脑一般不带有串口,再进行串口调试时,可以用虚拟串口代替。
& & & & 虚拟串口下载链接:&
& & & & 串口调试助手下载链接:
& & & & & VS2010串口程序(使用的unicode库,纯API,不利用Mscomm控件)下载链接:
& & & & && & & & & & & & & & & &
图1 虚拟串口界面
&& & & & 在进行串口调试的时候发现一个问题:就是两个串口的波特率不一致的时候,数据仍然能够正确的传输,无论是从每个串口发送还是接收都不会出错,这在逻辑上是说不通的。另外就是当从图中的COM2发送时,如果波特率不一致,那么COM1的波特率会变为9600(如果之前不是9600的话),COM2的波特率不变;而当从COM1发送数据的话,即使两个波特不一致,两个波特率的值都不变,数据传输也是正确的。真的不知道怎么回事?自己唯一能想到的就是虚拟串口内部能够根据两个串口的波特率,自适应的进行调整了。
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &图2 & &波特率不一致不影响传输正确性图
图3 虚拟串口调试结果图
& & &从图中可以很方便的发现,两个互联的串口之间的Send和Receive之间的关系,注意到这个选项,emulation是“仿效;&竞赛;&努力追上并超越;&竞争”,Enable
strict baudrate emulation意思就是&使能严格的波特率仿效,也就是让两个波特率传输一致&,不选中并不意味着不进行&baudrate emulation,这是程度降低了,但是测试的效果是,波特率不匹配,传输依然正确。
本文已收录于以下专栏:
相关文章推荐
在用单片机开发各种嵌入式应用系统中,由于异步串行通讯连接简单,因而成为经常用到的一种通信模式,很多应用中还要求实现多路异步串行通信。为了提高系统的性能价格比,就要求设计工程师用软件增加实现一路或多路异...
为解决计算机的物理串口个数的限制,在进行串口调试实验时,应尽可能采用虚拟串口软件。VSPD(Virtual Serial Ports Driver)虚拟串口软件是由Eltima软件公司设计的虚拟串口软...
通过串口调试软件 UartAssist.exe 和虚拟串口软件 VSPM,可以解决串口编程时没用硬件调试的问题,通过VSPM虚拟出串口设备,让程序发送信息到 VSPM 设备后通过 UartAssist...
所以如何在自己的笔记本电脑上模拟串口数据就成了当务之急。托Google的福,找到了两个小工具:VSPD和串口调试助手。下面简单介绍一下如何结合这两个小工具进行串口程序调试。
1、安装好VSPD后...
.cn/s/blog_6cb543ef0100x90j.html
Python语言:
#! /usr/bin/env python
#coding=ut...
他的最新文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)广州市丽祥计算机科技有限公司工厂:广州市黄浦区南湾工业区11栋三楼销售部地址:广州市天河区天河路592号百脑汇A座2913房电话:020-网址:&淘宝店网址: 邮箱:销售&技术&微信订阅号GZLXKJQQ 交流群:串口联网服务器群:端口转发服务:分享到:点击次数:2787&&更新时间: &&【】&&【】文件名称:虚拟串口软件VCOM 3.16下载分类:数之路常用工具软件包集合浏览次数:2787 次 文件大小: MB 简要描述:虚拟串口软件VCOM 3.16虚拟串口软件支持windows XP 32位64位操作系统,在安装时会被杀毒软件阻拦,请点充许通过,这个没有病毒,请放心使用. 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
win7 系统下安装虚拟串口操作步骤
下载积分:1000
内容提示:win7 系统下安装虚拟串口操作步骤
文档格式:PDF|
浏览次数:701|
上传日期: 01:06:38|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
win7 系统下安装虚拟串口操作步骤
关注微信公众号如何实现虚拟串口一对多-专业自动化论坛-中国工控网
如何实现虚拟串口一对多
给TA发消息
加TA为好友
发表于: 16:08:00
与多个IP通讯功能允许经由一个串口与多个不同IP地址上的多台设备服务器通讯
串口设备连网后有时需要通过一个虚拟串口与多个IP地址上的设备进行通讯, 例如:
假设在RS485网络上有多个数据采集终端(图1),RS485总线通过485&-&232转接器连接在电脑端的COM口,电脑 上装有一个应用软件可以向终端发送指令,其中包含终端的网络地址,这样就可以和终端进行通讯。RS485网络上的终端设备都会收到指令,但是只有与网络地址相匹配的终端设备才会回应命令。 这是控制多终端设备网络通讯常用的方法。电脑作为网络 "主控器",其他终端作为网络"被控制器”
现在假设要将这些数据采集终端连上网络,比如要通过TCP/IP网络来控制这些设备,最简单的方法就是将RS485总线连接到GW21X串口设备服务器,在电脑端创建一个虚拟端口,应用程序通过虚拟串口和GW21X与终端设备通讯(图2)
& 图 2. 使用GW21X和虚拟串口连接RS485系统和网络
&&& 可以使用这种方法。 但是这种方法只适合于终端设备之间距离较短的情况。 如果终端机之间的相互距离很远时,那么RS485的网络连接就会很长,RS485系统与网络的连接 也就没有了意义!更好的解决方法就是将每个终端设备直接连接至一个GW21X(图3). 这样的话就不需要进行RS485连接, 然而需要注意的是... ,每个GW21X都需要一个单独的 IP地址。但是一个虚拟串口同时只能连接一个IP地址!所以要解决问题就需要创建和终端设备同样多的虚拟串口。
图 3. 直接连接终端设备至和TCP/IP网络&
这种方法也比较麻烦,而且也不一定有效,因为大多数的软件包都不支持 通过多个串口同时进行通讯。所以就需要通过同一个虚拟串口与多个终端设备进行通讯。
&&& 解决办法
推出的与多个IP通讯功能 可以帮您解决这一问题。与多个IP通讯功能允许经由一个虚拟串口和多个目的IP 通讯,可以根据应用软件发送的数据内容在多个Ip地址间进行切换。每个终端都会有一个 单独的IP地址, 然而在通讯时所有的终端就如仍然连接在RS485网络上一样。让我们以上面的一个终端网络为例来说明问题。假设网络上有三台终端机,号码分别为1, 2, 3 (号码并不一定要连续)。 假设这几台终端机的协议使用以下命令结构(图4):
Command contents
              图. 4. 在RS485主-从网络模式下的常用命令格式
在所有的通讯协议中,所有的命令都以STX (ASCII code 02Hex)开始,以CR (ASCII code 0DHex)结束。 并且"压缩"字符(这该例子中就是STX 和 CR)不包含在命令体中,所以他们能 可靠的辨别每个命令的开始和结束。 在STX后的头两个ASCII字符中包含终端机的网络地址 ,为ASCII格式(例如 "01" 即为选择终端机 #1, "02" 即为选择 终端机 #2 等等)。
启动与多个IP通讯的功能,虚拟串口可以过滤与网络地址相关的内容(在该例子中是STX+Addr1+Addr2 sub-string),并且自动切换目的Ip地址。sub-string 包含两个部分:一个固定 Prefix和一个可变Switcher.Prefix决定数据包的开始字符, 以便虚拟串口进行识别。在该例子中是STX字符。Switcher是跟在Prefix后的可变部分, 决定要进行通讯的终端设备。在这里Switcher 包含两个ASCII字符("00", "01",等)。Prefix是固定部分,所以只能为虚拟串口定义一个string。Switcher是可变部分, 所以可以为一个虚拟串口定义许多个Switcher。每个Switcher都会有一个相应的目的Ip地址。IP地址 之间的转换关系储存在转换表中。每当虚拟串口侦测到应用程序发送的Prefix以及其后的Switcher, 虚拟串口就会开始向相应的Ip地址(根据转换表)发送数据。
例如图3的转换表应该包含三个Ip地址 (图 5)
Destination IP-address
192.168.100.40
192.168.100.41
192.190.0.15
图. 5. 图 3中的三个终端设备的转换表
 逐步设定多个IP地址
现在为例子中的系统设定虚拟串口:      
安装新版本的TDST      启动 VSP 管理器
在 VSP管理器窗口中点击添加虚拟串口- 添加虚拟串口 属性对话框就会打开。(图6)  
图. 6. 增加虚拟串口属性对话框
为新创建的虚拟端口选择端口号(例如, COM3), 如有必要,可启动 Send On-the-fly serial settingchanges to Device Server ,选择与多个IP通讯模式       点击 Edit Multi-IP table- 目的IP-地址表窗口就会打开(图 7)  
图. 7. 目的IP-地址表对话框
 在该对话框的顶端可输入Prefix。由于Prefix包含"普通ASCII" 以及不可打印
给TA发消息
加TA为好友 发表于: 08:50:31 1楼
图片内容看不到!!!!!!!
给TA发消息
加TA为好友 发表于: 17:17:51 2楼
不能看到图了, !!!!!!!!!!!!!!!
周点击排行周回复排行
[1758] [140] [140] [107] [80] [78] [76] [73] [70] [69]
[31] [19] [9] [8] [8] [8] [7] [6] [6] [6]最新求助
[3] [0] [9] [3] [0] [6] [3] [0] [19] [6]关于stm32f103的USB虚拟串口程序移植-电子产品世界论坛
关于stm32f103的USB虚拟串口程序移植
手边有个项目要用到USB传数据到主机,虽然有很多种方式,但最后还是选择了USB虚拟串口模式,将数据上传至pc端;
然而这就涉及到了移植问题,在keil下官方已经给出了一个完整的USB TO VCOM的demo,但在我的主机上装的是keil 4.22 版的(demo在C:\Keil\ARM\Examples\ST\STM32F10xUSBLib\Demos,盘符按自己的实际安装位置找),而我要用的函数库是3.5版的,显然会出现很多关于版本兼容的问题。
首先移植时候,打开demo下USBtoVCOM的程序工程,看到里面有不少usblib的文件看看都用到了那些文件,全数拷贝出来到另外建立的文件中,包括:
C:\Keil\ARM\Examples\ST\STM32F10xUSBLib\Demos\Virtual_COM_Port\include下的所有7个头文件、
C:\Keil\ARM\Examples\ST\STM32F10xUSBLib\Demos\Virtual_COM_Port\source下的所有8个源文件、
C:\Keil\ARM\RV31\LIB\ST\STM32F10x\USB下的usb库文件、
C:\Keil\ARM\INC\ST\STM32F10x\USB下的usb库文件头文件;
然后,用3.5的库文件重新建立一个工程,将刚复制的所有文件,在此工程下建立新的目录放进去,然后就是加载这些源文件,注意除了原来的复制过来的main.c/stm32f10x_it.c文件不加入工程。
最后,是修改其中的文件中的库关系,将所有"stm32f10x_lib.h"的文件修改为“stm32f10x.h"的头文件,其中”platform_config.h“文件中包涵一个”“#include "stm32f10x_type.h"头文件要将其修改为”stm32f10x.h"的头文件。至此编译器当能透过编译。然后将demo复制过来的main函数中的
&Set_System();//系统初始化
&Set_USBClock();//设置USB时钟
&USB_Interrupts_Config(); //配置USB中断
&USB_Init();//初始化USB&
复制到当前建立的工程main函数中,然后在将
&&if ((count_out != 0) && (bDeviceState == CONFIGURED))
&&& USB_To_USART_Send_Data(&buffer_out[0], count_out);
&&& count_out = 0;
函数代码复制进去,现在编译下可以运行代码了,但是连接usb线的时候就是无法安装驱动,就是连接不上。这就是库代码的问题了,其中在stm32f10x_it.c的文件中有一个中断函数要复制到当前建立的工程文件中的stm32f10x_it.c代码下;
void USB_LP_CAN_RX0_IRQHandler(void)
& USB_Istr();
&*******************************************************************************/
void USART1_IRQHandler(void)
& if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
&&& /* Send the received data to the PC Host*/
&&& USART_To_USB_Send_Data();
然后,运行代码的时候,还是同样无法安装驱动;在仔细检查后发现usb的中断入口向量函数不对,于是上面的代码改成:
void USB_LP_CAN1_RX0_IRQHandler(void)
& USB_Istr();
&这一下运行的可以成功找到驱动,终于连接了。
下面测试下能否收发数据:把以下代码注释掉重新编写一个收发函数;
if ((count_out != 0) && (bDeviceState == CONFIGURED))
&&& USB_To_USART_Send_Data(&buffer_out[0], count_out);
&&& count_out = 0;
编写好的收发函数如下:
&&& if (count_out != 0)&//判断有无数据接收到
&& if(buffer_out[0]==0x01){GPIO_ResetBits(GPIOB, GPIO_Pin_14 );
//&&&&&&&&&&&&&&&&&&&&&&&&&& USB_Send_Data("LED1 点亮下一个 \n");
&&&&&&&&&&&&&&&&&&&&&&&&&& USB_Send_Data((u8*)TEXT_Buffer);
&&&&&&&& count_out=0;
&&&&&&& }&//如果接收到的输出是0X01,点亮led1
&& if(buffer_out[0]==0x02){GPIO_ResetBits(GPIOB, GPIO_Pin_12 );
&&&&&&&&&&&&&&&&&&&&&&&&&& USB_Send_Data("LED2 点亮下一个 \n");
&&&&&&&& count_out=0;
&&&&&&&& }&
&&&&&&&& //如果接收到的输出是0X02,点亮led2
&& if(buffer_out[0]==0x03){GPIO_ResetBits(GPIOB, GPIO_Pin_13 );
&&&&&&&&&&&&&&&&&&&&&&&&&& USB_Send_Data("LED3 点亮下一个 \n");
&&&&&&&& count_out=0;
&&&&&&&& }&
&&&&&&&& //如果接收到的输出是0X03,点亮led3
&& if(buffer_out[0]==0x04){GPIO_SetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 );
&&&&&&&&&&&&&&&&&&&&&&&&&& USB_Send_Data("LED 全灭下一个 \n");
&&&&&&&& count_out=0;
&&&&&&&& } //如果接收到的输出是0X04,//关闭3个LED&
试试收发,
下面就是大家很期待的源代码了:
先上PC端驱动文件:
——回复可见内容——
在上传调试好的源码文件:
——回复可见内容——
注意我用的主芯片晶振12MHz。
赞一个。。分享万岁!
赞一个。。分享万岁!
太牛了,还能这么玩
找了这么久才见到如此的介绍。 感谢分享
dddddddddddddddddddddd
不错。顶了再看,是看帖的礼貌。
这两天正在开发
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有}

我要回帖

更多关于 虚拟串口 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信