【问题标题】:Command for opening serial port in Windows 7Windows 7中打开串口的命令
【发布时间】:2012-09-28 22:26:02
【问题描述】:

是否有用于打开串行端口的 Windows 命令,例如通过 Windows 7 中的命令提示符输入 COM3?例如:

OPEN "COM6" AS #1

我无法使用 pyserial 或任何其他未随 Windows 7 分发的实用程序。

首选解决方案 Opening a COM port in QBasic on Windows 7

【问题讨论】:

  • echo > COM3?由于我的机器没有旧版,因此无法在此处测试。
  • 打开它然后做什么?接收数据?发送数据?设置端口配置?
  • @Brad 打开并写入命令以由连接的设备解释。
  • Windows 7 中没有 DOS。DOS 与 Windows Millenium 一起死亡。基于 NT 的系统中的控制台称为命令行。

标签: windows batch-file cmd windows-7 serial-port


【解决方案1】:

也许您可以使用 Powershell?它包含在 Win7 中...

代码取自这里http://blogs.msdn.com/b/powershell/archive/2006/08/31/writing-and-reading-info-from-serial-ports.aspx

写入串行端口

PS> [System.IO.Ports.SerialPort]::getportnames()
COM3
PS> $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
PS> $port.open()
PS> $port.WriteLine("Hello world")
PS> $port.Close()

从串口读取

PS> $port= new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one
PS> $port.Open()
PS> $port.ReadLine()

【讨论】:

  • 谢谢。我希望使用普通的旧 BASIC 来做到这一点。
  • 我将此命令与 PHP 和 shell_exec() 函数一起使用。我有一个 Arduino 连接,我将它与我修改的 Blink 草图(如果你熟悉的话)一起使用,而不是闪烁它打印“Led On”和“Led Off”。但有时当我刷新我的 php 脚本时,我会得到不可读的字符串,如空或“???On”或只是“Led”,不完整。有没有办法解决这个问题?它需要缓冲区吗?
  • @Petsoukos 对不起,我对 PHP 或 Arduino 一无所知。无论如何,如果输出出现乱码,也许有什么干扰......也许是其他一些软件/进程写入同一个 COM 端口?或者可能在脚本达到自然结束之前终止脚本(在shell_exec中)?也许您可以在 PHP 脚本的开始/结束处添加一些调试日志/跟踪代码/消息,并且您的 shell_exec 脚本可以跟踪它们正确到达末尾,或者如果它们被某些东西打断
  • @Max $port.open() 拒绝访问端口“COM16”。有没有办法解决这个问题?
  • @kirankumarkotari 可能 COM16 已被另一个软件使用(或被您的软件/脚本的另一个实例使用)。所以您可以尝试:关闭其他正在使用 COM16 的软件,或者尝试重新启动计算机,或者尝试在设备管理器中禁用/启用 COM 端口,或者尝试使用 Sysinternal PortMon 来更好地了解发生了什么。也可能是COM端口访问权限被锁定,所以需要管理员权限才能打开端口。
【解决方案2】:

将文件内容发送到串行端口:

copy file.bin com1 /b

向串口发送几个字符:

echo hello > com1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2011-04-28
    • 2013-10-19
    相关资源
    最近更新 更多