使用C#或Python向COM端口写入数据

3

我正在尝试使用Visual Studio C#将字符串写入一个USB串行适配器COM4,但出现以下错误:

访问端口“COM4”被拒绝。

我的程序非常简单:

serialport.Open();
serialport.WriteLine("test");
serialport.Close();

我还尝试使用Python的pyserial模块,得到了以下结果:

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    ser.write("string")
  File "C:\Python27\lib\site-packages\serial\serialwin32.py", line 255, in write
    raise SerialException("WriteFile failed (%s)" % ctypes.WinError())
SerialException: WriteFile failed ([Error 6] The handle is invalid.)

我知道这个问题与编程无关,可能只是Windows 7的问题,但我希望有人已经遇到过类似的问题。

3个回答

1

尝试这个:

右键单击可执行文件,选择“以管理员身份运行”。Windows 7默认情况下以非管理员权限运行程序。我敢打赌,写入COM端口的能力需要以管理员身份运行程序。


你尝试过重新启动电脑吗?认真的,拔掉设备可能会搞砸一些东西,重新启动可以解决这个问题。查看http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/49e8839e-e833-498d-a3a1-28922ec7bf43 - Turtle
问题是我不能为Python脚本做到这一点。尚未尝试使用exe文件。 - kirbuchi
没,我还没重启。好的,等我重启后再通知你。 - ACP
这与权限无关,端口只是被另一个进程占用了。 - Hans Passant

1

您不能同时打开多个串口连接。该端口可能正在使用中。


1

这与权限无关,也与端口被占用无关。我找到了一个相关问题,它说是因为我安装的版本不同(64位Python和32位pyserial),我感到很傻。

我仍然无法弄清楚为什么在C#上也无法工作,但没关系。我只需使用Python。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接