2010-08-13 35 views
3

我使用Visual Studio 2008和開發Windows使用.NET 3.5問題在C#應用程序的通信端口在筆記本電腦上

我做的串行通信和按鈕上單擊該應用程序得到一個列表在C#應用形成所有可用通信端口。然後,我依次打開每個端口,發送自定義握手請求命令並等待幾秒鐘的回覆,以掃描我正在查找的設備。

這一切工作正常我的電腦(和其他8臺電腦我已經測試過),但是當我在筆記本電腦上運行程序我的程序似乎看到所有的通信端口,併發送一個要求,但我的設備從來沒有收到它。我試過使用硬件通信端口和USB轉串口轉換器。我也在幾家不同製造商的筆記本電腦上測試過它。他們所有的表現完全一樣。

有沒有人遇到類似的問題?

UPDATE 1

的筆記本電腦似乎能夠從設備接收數據,但仍然不能傳輸。當然,與臺式機無關。

UPDATE 2

便攜式計算機可以接收和發送數據。 因此,這個問題縮小到我的C#軟件可以在桌面上進行串行通信,但不能在筆記本電腦上做同樣的事情。

UPDATE 3

解決了它。問題是由於我的測試筆記本電腦內置了調制解調器。由調制解調器保留的COM端口(通常是COM3)不會出現在設備管理器中,但可以在Windows regestry中看到。所以無論什麼時候我的串行端口對象會要求一個COM端口列表,它都會得到調制解調器端口,並且在端口掃描期間,這些調制解調器在我的握手請求中被阻塞。與往常一樣,一切都很愚蠢和簡單。

回答

2

聽起來就像您的設備對電壓水平很挑剔。 RS-232不能很好地解決這個問題,允許+/- 5V到+/- 28V之間的任何地方。大多數設備最喜歡+/- 12V,這是臺式機器的標準電壓。然而,筆記本電腦始終處於低端,典型值爲+/- 5V。你可以做的事情不多。

爲了測試這個理論,消除這種可能性,這是由您的代碼引起的,並確保它與空調制解調器協同工作。將TxD連接到RxD,以便接收您發送的內容。然後使用超級終端或膩子。如果後者無法看到該設備,那麼這是一個硬件問題。

+0

是的。現在到一個無線調制解調器電纜的古董店。 – 2010-08-13 18:37:45

+0

我試過hypertermial。我可以從設備接收數據,但無法在筆記本電腦上傳輸。 – udushu 2010-08-13 18:39:00

+0

這符合模式。該設備的輸出信號有很多oompf,筆記本電腦不會有任何問題。筆記本電腦輸出信號沒有足夠的oompf,設備無法看到它。谷歌'rs232信號助推器'。 – 2010-08-13 18:58:29

相關問題