当前位置: 首页 > news >正文

下载安装 com0com

下载

在 sourceforge 网站下载安装器:下载链接
在这里插入图片描述

安装完成后可以在设备管理器中看到默认创建的一对虚拟串口
在这里插入图片描述

使用串口调试助手收发

使用串口调试助手分别打开。如下图所示,在端口选择的下拉列表中可以看到刚才在设备管理器中看到的 COM3 和 COM5
在这里插入图片描述

分别打开
在这里插入图片描述

在这里插入图片描述
在 COM3 中发送 你好 COM5,我是 COM3
在这里插入图片描述
在 COM5 就可以收到数据了
在这里插入图片描述
反过来也一样
在这里插入图片描述
在这里插入图片描述
除了 COM3 和 COM5 以外,还可以看到如下 2 个虚拟串口
在这里插入图片描述
这 2 个也是一对,同样可以互相收发
在这里插入图片描述
在这里插入图片描述

readme

开始菜单中可以找到如下文件夹
在这里插入图片描述
打开 ReadMe

下面是 ReadMe 内容的翻译

                 =============================  虚拟串口模拟器(com0com)  =============================  简介  
============  虚拟串口模拟器是一款开源的Windows内核模式虚拟串口驱动程序,遵循GPL许可协议免费提供。  
您可以创建无限数量的虚拟COM端口对,并通过任意端口对连接两个应用程序。  
每个COM端口对提供两个默认名称为CNCA0和CNCB0的COM端口。一个端口的输出即为另一个端口的输入,反之亦然。  通常端口对中的一个端口由需要与设备通信的Windows应用程序使用,另一个端口由设备模拟程序使用。  例如要通过IP传真,您可以将Windows传真应用程序连接到CNCA0端口,将t38modem(http://t38modem.sourceforge.net/)连接到CNCB0端口。此时t38modem充当传真调制解调器模拟程序。  结合hub4com使用,com0com可实现以下功能:  - 让多个应用程序共享单个真实串口设备的数据和信号。例如多个应用程序可共享同一个GPS设备的数据;  - 像使用本地计算机的真实串口一样使用远程计算机的串口(支持RFC 2217协议)。  com0com项目主页:http://com0com.sourceforge.net/。  安装指南  
==========  注意(基于x64的Windows Vista/Windows Server 2008/Windows 7/8系统):  com0com.sys是经过测试签名的内核模式驱动程序,默认不会加载。要启用测试签名,请执行命令:  bcdedit.exe -set TESTSIGNING ON  然后重启计算机。  注意:  启用测试签名会降低计算机安全性。  直接运行安装程序(setup.exe)。安装向导将引导您完成必要步骤。  
如果弹出"找到新硬件向导":  - 选择"否,暂时不",点击下一步;  - 选择"自动安装软件(推荐)",点击下一步。  
安装完成后,系统中将出现名为CNCA0和CNCB0的COM端口对。  您可以通过安装命令提示符添加更多端口对:  1. 运行"安装命令提示符"快捷方式  2. 输入安装命令,例如:  命令> install - -  系统将创建3个新的虚拟设备。其中一个设备名为"com0com - 串口对模拟器总线",另外两个名为"com0com - 串口模拟器"并位于CNCAn和CNCBn端口。  输入help命令获取更多信息,例如:  命令> help  作为替代方案,您可以通过运行"设置"快捷方式调用基于GUI的设置工具(需要Microsoft .NET Framework 2.0)。  测试方法  
=======  1. 在CNCA0端口启动超级终端  2. 在CNCB0端口启动超级终端  3. CNCA0端口的输出应显示为CNCB0端口的输入,反之亦然  卸载指南  
============  直接通过开始菜单中的com0com卸载快捷方式,或通过控制面板"添加/删除程序"中的"虚拟串口模拟器(com0com)"条目进行卸载。卸载向导将引导您完成必要步骤。  提示:要卸载旧版com0com(无安装程序的版本),请先安装新版再执行卸载。  常见问题解答  
=============  问:能在Windows 9x平台上运行com0com吗?  
答:不能。需要Windows 2000或更新版本的操作系统。  问:能否以静默方式安装/卸载com0com(无需用户干预和界面)?  
答:可以,使用/S参数,例如:  setup.exe /S  "%ProgramFiles%\com0com\uninstall.exe" /S  可使用/D参数指定安装目录,例如:  setup.exe /S /D=C:\Program Files\com0com  注意:静默安装默认不会创建任何端口对(可通过设置CNC_INSTALL_CNCA0_CNCB0_PORTS和/或CNC_INSTALL_COMX_COMX_PORTS环境变量覆盖此行为)。  问:setup.exe还有哪些命令行参数?  
答:setup.exe和uninstall.exe的命令行参数列在NSIS用户手册第3.2节:  http://nsis.sourceforge.net/Docs/Chapter3.html#3.2  此外还可使用以下环境变量:  影响setup.exe行为的环境变量:  CNC_INSTALL_START_MENU_SHORTCUTS={是|否}   - 选择/取消"开始菜单快捷方式"  CNC_INSTALL_CNCA0_CNCB0_PORTS={是|否}      - 选择/取消"CNCA0 <-> CNCB0"  CNC_INSTALL_COMX_COMX_PORTS={是|否}        - 选择/取消"COM# <-> COM#"  CNC_INSTALL_SKIP_SETUP_PREINSTALL={是|否}  - 跳过驱动预安装/更新  影响uninstall.exe行为的环境变量:  CNC_UNINSTALL_SKIP_SETUP_UNINSTALL={是|否} - 跳过设备和驱动卸载  问:能否将CNCA0和CNCB0改名为COM8和COM9?  
答:可以。改名步骤:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令,例如:  命令> change CNCA0 PortName=COM8  命令> change CNCB0 PortName=COM9  也可设置为'COM#'形式,例如:  命令> change CNCA0 PortName=COM#  命令> change CNCB0 PortName=COM#  使用'PortName=COM#'参数时,将调用端口类安装程序设置实际端口名。端口类安装程序会选择COM端口号并将实际端口名设为COM<n>。安装后可通过list命令查看实际端口名,使用RealPortName=COM<n>参数修改实际端口名,例如:  命令> list  CNCA0 PortName=COM#,RealPortName=COM3  CNCB0 PortName=COM#,RealPortName=COM4  命令> change CNCA0 RealPortName=COM8  命令> change CNCB0 RealPortName=COM9  命令> list  CNCA0 PortName=COM#,RealPortName=COM8  CNCB0 PortName=COM#,RealPortName=COM9  问:波特率设置似乎无效:数据传输速度始终相同。如何启用波特率模拟?  
答:要为CNCA0到CNCB0的数据传输启用波特率模拟:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令,例如:  命令> change CNCA0 EmuBR=yes  问:超级终端测试成功,但使用CreateFile("CNCA0", ...)打开端口时失败。GetLastError()返回ERROR_FILE_NOT_FOUND。  
答:必须在端口名前添加特殊字符"\\.\"。尝试使用CreateFile("\\\\.\\CNCA0", ...)打开端口。  问:我的应用程序在启动时向配对的COM端口发送数据会挂起。唯一的恢复方法是运行连接到另一个配对端口的超级终端。使用物理串口时没有这个问题。  
答:应用程序挂起是因为默认禁用接收缓冲区溢出。可以通过为接收端口启用接收缓冲区溢出来解决此问题。同时为避免流控制问题,需要为发送端口启用波特率模拟。如果您的应用程序使用CNCA0端口,配对端口是CNCB0,则:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令,例如:  命令> change CNCB0 EmuOverrun=yes  命令> change CNCA0 EmuBR=yes  问:当配对端口未打开时,部分字符会保留在发送端口的输出缓冲区中,并在下次连接时输出。有什么解决方法?  
答:如果接收缓冲区溢出被禁用(默认),这是正常行为。如果需要像真实零调制解调器那样丢失这些字符的行为,请为接收端口启用接收缓冲区溢出。同时为避免流控制问题,为发送端口启用波特率模拟。如果发送端口是CNCA0,接收端口是CNCB0,则:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令,例如:  命令> change CNCB0 EmuOverrun=yes  命令> change CNCA0 EmuBR=yes  问:我需要编写一个连接到com0com端口对一侧的应用程序,但不想让用户"看到"com0com创建的所有虚拟端口,只显示真正可用的端口。  
答:如果您的应用程序使用CNCB0端口,用户使用的配对端口是CNCA0,则可以通过以下方式"隐藏"CNCB0并在应用程序打开CNCB0时"显示"CNCA0:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令:  命令> change CNCB0 ExclusiveMode=yes  命令> change CNCA0 PlugInMode=yes  问:添加端口对时,为什么Windows XP总是弹出"找到新硬件向导"?驱动程序已经存在,它可以静默安装并在后台报告设备就绪状态。  
答:这是因为缺少已签名的com0com.cat目录文件。可在测试计算机上按以下方式创建:  1. 创建目录文件,例如:  cd "C:\Program Files\com0com"  inf2cat /driver:. /os:XP_X86  2. 创建测试证书,例如:  makecert -r -n "CN=com0com (test)" -sv com0com.pvk com0com.cer  pvk2pfx -pvk com0com.pvk -spc com0com.cer -pfx com0com.pfx  3. 用测试证书签名目录文件,例如:  signtool sign /v /f com0com.pfx com0com.cat  4. 将测试证书安装到"受信任的根证书颁发机构"和"受信任的发布者"证书存储区,例如:  certmgr -add com0com.cer -s -r localMachine root  certmgr -add com0com.cer -s -r localMachine trustedpublisher  inf2cat、makecert、pvk2pfx、signtool和certmgr工具包含在Windows驱动工具包(WDK)中。  或者您可以取消"找到新硬件向导"并通过update命令安装驱动,例如:  setupc install - -  setupc update  此外可以临时禁用即插即用相关UI消息,例如:  reg add HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v SuppressNewHWUI /t REG_DWORD /d 1 /f  setupc install - -  setupc update  reg add HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Settings /v SuppressNewHWUI /t REG_DWORD /d 0 /f  更多信息参见http://support.microsoft.com/kb/938596。  问:如何监控和获取配对端口的设置(波特率、数据位、校验位和停止位)?  
答:可通过扩展IOCTL_SERIAL_LSRMST_INSERT实现。示例参见:  http://com0com.sourceforge.net/examples/LSRMST_INSERT/tstser.cpp  问:如何将状态传输到DCD和RING?CTS和DSR已连接到RTS和DTR。  
答:OUT1可连接到DCD,OUT2连接到RING。使用扩展IOCTL_SERIAL_SET_MODEM_CONTROL和IOCTL_SERIAL_GET_MODEM_CONTROL来改变OUT1和OUT2的状态。示例参见:  http://com0com.sourceforge.net/examples/MODEM_CONTROL/tstser.cpp  问:如何查看当前运行版本?  
答:在设备管理器中,驱动程序属性页显示INF文件的版本和日期,而驱动程序详细信息页显示com0com.sys文件的版本。com0com.sys文件的版本即为您正在运行的版本。  问:当com2tcp的"服务器"和"客户端"都运行在同一台计算机上时,我可以用某些应用程序通过com2tcp与硬件通信。但当尝试将客户端移到远程计算机时,应用程序显示超时消息且没有增加超时时间的设置。如何解决?  
答:尝试调整应用程序COM端口的AddRTTO和AddRITO参数:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令,例如:  命令> change CNCA0 AddRTTO=100,AddRITO=100  问:能否通过自定义应用程序添加、删除和重命名虚拟串口?是否有可用API或命令行工具?  
答:setupc.exe是完成此任务的命令行工具。输入以下命令获取更多信息:  setupc help  注:setupg.exe是setupc.exe的GUI封装。  问:需要使用com0com端口的应用程序不识别com0com端口为"真实"COM端口。即使我已将端口名改为COMx,它仍然看不到com0com端口。是否有设置能让端口显示为"真实"COM端口?  
答:可以。您应将端口放入端口类,例如:  1. 运行"安装命令提示符"快捷方式  2. 安装端口对,其中一个端口名为COM#,例如:  命令> install PortName=COM# -  问:我需要在设备管理器中添加"模拟"PNP设备并使其连接到COM3。我使用PNPComSimulator(http://www.bds.dogma.net/pnp_part2.htm),它可以在DevManager轮询时模拟PNP串口设备的响应。能否让设备管理器通过com0com查找PNP设备?  
答:可以。最简单的方法是将端口放入端口类,例如:  1. 运行"安装命令提示符"快捷方式  2. 安装端口对,其中一个端口名为COM#,例如:  命令> install 0 PortName=COM# -  安装端口类端口后,可通过list命令获取实际端口名,例如:  命令> list  CNCA0 PortName=COM#,RealPortName=COM3  CNCB0 PortName=-  问:能否配置com0com随机损坏数据?这个功能对测试应用程序鲁棒性很有用。  
答:可以,通过设置EmuNoise参数实现:  1. 运行"安装命令提示符"快捷方式  2. 输入修改命令,例如:  命令> change CNCA0 EmuNoise=0.00001,EmuBR=yes,EmuOverrun=yes  命令> change CNCB0 EmuNoise=0.00001,EmuBR=yes,EmuOverrun=yes  现在每个字符帧(包括空闲帧)都有0.00001的概率被损坏。  问:最多可以定义多少个端口对?  
答:取决于您的系统。com0com本身有1000000个端口对的内部限制。  问:我的应用程序用户可能需要安装多达250个COM端口对。初始安装相当快,但每个额外的COM端口安装时间通常比前一个更长。用户无法接受长时间等待安装。  
答:这是因为每安装一个新的端口对都需要为所有已安装的对更新驱动程序。可以通过使用带--no-update参数的install命令批量安装多个COM端口对,最后再执行不带该参数的install命令来提高速度,例如:  命令> --no-update install - -  命令> --no-update install - -  ...  命令> --no-update install - -  命令> install  批处理程序示例:  cd /D "%ProgramFiles%\com0com"  FOR /L %%i IN (0,1,249) DO setupc --no-update install - -  setupc install  问:我使用64位版本的com0com遇到问题。想调试但找不到适用于64位操作系统的免费串口监控软件(如portmon)。有人知道有什么可用的吗?  
答:可以尝试使用com0com内部跟踪功能进行调试:  - 从com0com源码获取trace.reg文件;  - 将trace.reg导入注册表;  - 重新加载驱动(或重启系统);  - 执行测试并查看C:\com0com.log文件中的结果。  要禁用跟踪,请重新安装com0com或将trace_disable.reg导入注册表后重新加载驱动。  
http://www.dtcms.com/a/268274.html

相关文章:

  • Android16之解决报错:ckati: no such file or directory(二百四十九)
  • ros-noetic搭建turtlebot3测试
  • 数据运营策略 —— B-O价值模型
  • 【机器学习笔记Ⅰ】12 逻辑回归
  • 《Redis》缓存与分布式锁
  • usrp b210 亚克力外壳
  • 【机器学习笔记Ⅰ】11 多项式回归
  • hp开关机
  • CICD[导航]、docker+gitlab+harbor+jenkins从安装到部署
  • vuex 和持久化 vuex-persistedstate
  • macOS虚拟机登录AppleID,全版本,成功率高
  • 深度学习篇---简单果实分类网络
  • 群晖 DS3617xs DSM 6.1.7 解决 PhotoStation 安装失败问题 PHP7.0
  • 企业智脑:智能营销新纪元——自动化品牌建设与智能化营销的技术革命
  • Unreal Engine 5中的AI知识
  • Yocto项目:嵌入式Linux开发的“万能烹饪手册”
  • 力扣 hot100 Day36
  • C++学习之STL学习:list的模拟实现
  • 【CSS-16】深入理解CSS Transform:从基础到高级应用
  • 条件渲染 v-show与v-if
  • 《自然》发布机器人技术路线图
  • 铸造软件交付的“自动驾驶”系统——AI大模型如何引爆DevOps革命
  • 分布式压测
  • Linux驱动学习day18(I2C设备ap3216c驱动编写)
  • Mybatis----留言板
  • python实战项目81:ZeoDB多线程数据爬取程序(最新稳定好用)
  • Node中Unexpected end of form 错误
  • 【大模型入门】访问GPT_API实战案例
  • 从LLM和MCP的协同过程看如何做优化
  • webUI平替应用,安装简单,功能齐全