【问题标题】:COM Port already open in Windows 7COM 端口已在 Windows 7 中打开
【发布时间】:2012-06-05 12:48:56
【问题描述】:

当我尝试使用 AsyncPro (TApdComPort) 连接到 Windows 7 上的 COM 端口时,我收到“设备已打开”之类的错误消息。但相同的应用程序在 Win Xp 机器上运行良好。我使用 Delphi 6 开发程序。请帮我解决这个问题。 感谢你的帮助。 谢谢。

【问题讨论】:

  • 那么问题出在哪里?错误消息告诉您出了什么问题。您有什么理由相信问题不只是找到打开并关闭端口的程序那么简单?请参阅超级用户上的Now who's using my COM port?。 Stack Overflow 是针对编程问题的,但我还不相信你真的一个编程问题。

标签: delphi serial-port port


【解决方案1】:

您使用什么组件连接到 COM 端口?

如果您使用 CreateFile API 打开端口,请使用 GetLastError() API 获取问题的详细错误。

如果这对您没有帮助,则表示这是硬件问题

不知道你正在使用的组件 ApdComPort 但你可以做一个简单的测试写一个简单的应用程序来打开端口就像这样

var
  comHandle : THandle;
begin
  comHandle := CreateFile('COM66',GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);
  if comHandle = INVALID_HANDLE_VALUE then ShowMessage(SysErrorMessage(GetLastError))
  else ShowMessage('Port opened');
end //Make shure to replace COM66 with your actual COM Port you wish to open

如果它显示端口已打开,则说明您正在使用的组件有问题,所以我会推荐这个http://sourceforge.net/projects/comport/ 在此处发布其他错误消息以找到解决方案。

【讨论】:

  • @opc0de 我正在使用组件 ApdComPort。如果您需要更多信息,请告诉我
  • @Delphian 检查我的编辑并发布您遇到的错误
  • 我正在使用以下设置,ComNumber := 1;波特:= 1200;数据位:= 8;停止位:= 2;奇偶校验 := pNone
  • @Delphian 无论波特率等如何,都应该打开 com 端口,所以这里的设置并不有趣。
【解决方案2】:

我有一个类似的问题,通过在串行端口高级属性(通过设备管理器)中将端口名称从 COM1 更改为 COM4 来解决。

然后一切正常。一些程序仍然将重命名的端口视为 COM1,但现在它们可以访问该端口。

【讨论】:

    【解决方案3】:

    对我来说,问题在于远程桌面。我取消选中连接中的所有本地资源。不知何故,远程桌面阻塞了 com 端口!

    【讨论】:

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