多个程序共享同一串口数据的实现

有过串口编程经验的人都知道,串口是独占方式使用的,即有且只有一个应用实例能对一个串口进行打开、读写操作。但实际应用中,我们可能要在多个应用程序中对来自同一个串口的数据进行分析。比如我们有一个GPS设备,用串口的方式将数据传到电脑上了,我们想在多个应用程序中使用这个GPS数据。利用虚拟串口(VSPD如图1)这款软件,可以虚拟出成对的串口。例如,物理串口为COM1,利用VSPD将另一个虚拟出的串口,如COM2和物理串口COM1配对,效果如图2所示。



图1 虚拟串口(VSPD)



图2 将物理串口和虚拟出来的串口配成对

经过这样的操作之后,由物理串口COM1发过来的数据,理论上可以在COM2口接收到(待验证)。但VSPD不支持将多对配对的虚拟串口同时连在一起,从而无法达到一个物理串口对多个虚拟串口的效果。这时我们可以用到另外一款很有用的软件,serial_splitter,这里用的v3.5破解版本,下载后(点击打开链接),若在win7下使用,请以管理员身份运行SSplitter.exe,否则找不到物理串口,笔者也是摸索了很久才成功,在此提醒一下大家。其界面如图3。serial splitter的功能比VSPD强大的多,不仅可以像VSPD那样,虚拟出配对的串口,还可以虚拟出单独的串口,可以虚拟出一对多、多对一的串口。下面简要介绍一下这款软件。



图3 serial splitter界面图

这里我们想要获取物理串口(如COM1)上的数据给多个应用程序使用,可以利用一个物理串口对应多个虚拟串口来实现。具体操作步骤如下:首先在上图空白区中的Serial Splitter上右键->选择Add buddle,这是出来了一个新的配对项New buddle,我们可以将其重命名为mybuddle,之后点击mybuddle前的“+”号,然后右键input->选择Add port->选择Add real serial port->选择真实存在的串口(如COM1)。到这里,数据源就设置好了,接下来设置数据输出端口。同理设置output,此时端口添加时,我们选择Add virtual serial port,这里添加几个虚拟的串口,如COM4、COM5、COM6、COM7……若虚拟串口本身不存在,则此操作会帮我们创建出虚拟的串口。

完成后的效果图如图4所示,完成了上述操作后,我们就可以不同的应用程序中分别打开虚拟的串口COM5、COM6、COM7……,读出来的数据当然也是来自于COM1接收的数据,就不用担心COM1被独占的困扰了。



  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值