使用串口复用工具让多个程序共享一个串口数据【整理】

最近在做一个外挂程序,从串口获取其他程序得到的数据,但是问题是,串口是独占方式使用的,也就是说同时只能有一个程序去读取串口数据或者发送数据到串口。

那么,在不能关闭其他程序的情况下,怎样获取其他程序得到的相同的串口数据呢?

搜过一些文章,随便看看都说serialPort1.Open()就行了,说明他们都没去试过,在另一个程序打开了串口的情况下,你去open试试看。

又搜过一些帖子,说可以用钩子函数,结果有关钩子函数的资料不是鼠标的就是键盘的,有些人提过几个函数createfile,readfile等,但是却没有人写过一个例子,最后在某个回帖中有人提过几个工具,下载了许多,结果只有一个可以实现我想要的效果,软件名是 Eltima Software Serial Splitter(软件下载地址请自行搜索),使用教程请见:http://www.xcar.com.cn/bbs/viewthread.php?tid=12227886

我亲自测试过了,的确可用,多个程序可以共享一个串口的数据,原理就是复用软件连接真实的串口,然后虚拟出多个串口,所有程序都去连接虚拟串口,于是真实串口的数据会同时传到所有虚拟串口上,这就解决了问题,后来我看到搞硬件的人居然从一个串口接了2条线分出另外两个串口,从硬件的角度实现了这个功能,而且传输速度更有保障,不过程序多的情况下就比较麻烦了。

目前就这么解决,希望能帮到遇到同样问题的同学,真希望有人能写出用钩子函数来解决的例子,当然,从技术研究的角度是这样,但是从解决实际问题的角度,还是越简单越好,有现成的软件能用当然用现成的啦。

转载于:https://www.cnblogs.com/linyc/archive/2011/03/27/1996640.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法 -------- 1. 点击ComfoolerySetup.exe安装Comfoolery 2. 配置Comfoolery,详见“菜单说明”一节 3. 通告串口服务器IP、端口号 4. 客户端telnet连接串口服务器 菜单说明 -------- * File,仅含退出选项,一般用不到 * Edit,含Com Settings和TCP Settings两个选项 ** Com Settings,配置要共享串口信息 *** Com Port #,待共享串口号 *** Baud Rate,波特率 *** Parity,一般选择“None” *** Data bits,一般选择“8” *** Stop bits,一般选择“1” *** Flow Control,一般选择“None” ** TCP Settings,配置共享服务器端口 *** Read-only port number,当客户端连接此端口号时,只能读串口输出的信息,不能对串口进行写操作 *** Read/write port number,当客户端连接此端口号时,不但能读串口输出的信息,还可对串口进行写操作 * Help,一般用不到 客户端连接说明 -------------- 使用telnet工具,按服务器的IP加共享的端口号即可连接。 注意使用时,需要为telnet工具配置“Force character at a time mode”,否则telnet工具敲回车会多回显一次本次输入,使用效果不佳。 * SecureCRT,右击标签,选择“Session Options”,点击左侧“Category”->“Connection”->"Telnet",在右侧勾选“Force character at a time mode”,保存退出。 * Linux命令行,"telnet 服务器IP 端口号",敲ctrl + ],执行mode character,就可以进入单字符模式("character at a time" mode)。 其他说明 -------- 打开多个Comfoolery实例可实现多串口共享

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值