2010-09-04 101 views
3

我嘗試寫一個字符串到COM4這是使用Visual Studio C#一個USB串口適配器,並得到了以下錯誤:寫入COM端口C#或Python

Access to the port 'COM4' is denied.

我的程序是非常簡單的:

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

我也使用pyserial與Python嘗試並獲得:

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.) 

我知道這個問題是不是真的RELAT編程,可能是一個Windows 7的東西,但我希望有人已經有類似的問題。

回答

1

它與正在使用的端口都沒有關係。我發現了一個related question,它說這是因爲我安裝的版本(64位Python和32位pyserial),我感到非常愚蠢。

我仍然不明白爲什麼它也沒有在C#上工作,但沒關係。我只會使用python。

1

試試這個:

右鍵單擊您的可執行文件,並選擇「以管理員身份運行」。 Windows 7默認運行沒有管理員權限的程序。我敢打賭,寫入COM端口的能力需要以管理員身份運行程序。

+0

我試過了你的建議,但它似乎沒有工作 – 2010-09-04 05:06:44

+0

你試過重新啓動你的電腦嗎?嚴重的是,拔下設備可能會搞砸,這會解決這個問題。看看http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/49e8839e-e833-498d-a3a1-28922ec7bf43 – Turtle 2010-09-04 05:56:15

+0

問題是我將無法爲此爲一個python腳本。還沒有嘗試與exe文件。 – kirbuchi 2010-09-04 06:05:22

1

您不能同時連接多個串行端口。該端口可能正在使用中。

+0

+1,這就是原因。 – 2010-09-04 16:35:43