2010-12-01 28 views
0

私はマシンのシリアルポートを使用するWindows CEアプリケーションで作業しています。しかし、ポートを開こうとするとIOExceptionが発生します。私はopen文の前に接続をクローズしようとしましたとも(開口部の前に実際に偽である)、それを開く前のIsOpenの状態をチェックしてWindows CEアプリケーションでシリアルポートを開くことができません

SerialPort NewSerialPort = new SerialPort("COM7", 115200, Parity.None, 8, StopBits.One); 
NewSerialPort.Handshake = Handshake.None; 

//opening the serial port 
NewSerialPort.Open(); 

:以下の例のコードです。 SerialPort.GetPortNames関数は、COM1/COM2/COM5/COM7を返します。私はすべてこのようなdiffrendの方法で含めてみました:COM1:/ COM2:/ COM5:/ COM7:。私はそれを働かせるように見えない。

私の最初の考えは、Windows CEイメージに何かを追加するのを忘れていたことでしょう。しかし、シリアル通信で重要と思われるものはカタログにはないようです。

誰もこれについて考えていますか? System.IO.Ports.SerialStream.WinIOError System.IO.Ports.SerialStream.CheckResult(AT() )で

System.IO.Ports.SerialStream.WinIOError(AT

) System.IO.Ports.SerialStream.SetBufferSizes()System.IO.Ports.SerialPort.Open(AT ) System.Windows.Forms.Control.OnClickでcommtest.Form1.button2_Click()で で() at System.Windows.Forms.Button.OnClick() のSystem.Windows.FormsでMicrosoft.AGL.Forms.EVL.EnterMainLoop() でSystem.Windows.Forms.Control._InternalWnProc() でSystem.Windows.Forms.ButtonBase.WnProc() でcommtest.Program.Mainで.Application.Run() ()

+1

例外メッセージが表示されないようにしてください。 –

+0

ハンス・パッセンジャーにこれについての理想がありますか? – Kevin

+0

'NetCFv35.Messages.EN。*。cab .'ファイルをインストールする必要があります(ファイル名を変更することも可能です)(http://blogs.msdn.com/b/martijnh/archive/2008/01/03/fixing -exception-messages-on-the-net-compact-framework-3-5.aspx))を使用して、実際の例外メッセージを取得します。 –

答えて

0

あなたは()GetPortNamesからそれを得るよう、正確なポート名をお試しください - コロン

 
SerialPort NewSerialPort = new SerialPort("COM7:", 115200, Parity.None, 8, StopBits.One); 

// or 

string[] portNames  = SerialPort.GetPortNames() 
SerialPort newSerialPort = new SerialPort(portNames[3], , 115200, Parity.None, 8, StopBits.One); 

を含むことがない場合作業、 "\\。\ COM7"を試してください

 
SerialPort NewSerialPort = new SerialPort("\\.\COM7", 115200, Parity.None, 8, StopBits.One); 
+0

速い返答をありがとう。最初の2つのオプションは私にとってはうまくいかないようです。私はまだIOExceptionを取得します。最後のオプションは私に次の例外を与えます: ポート名は '\\'で始めることはできません。 パラメータ名:PortName 他のアイデアはありますか? – Kevin

+0

ポート名はスラッシュで始まるので、 "\\\\。\\ COM7"や@ "\\。\ COM7"のようなエスケープ文字を使用する必要があります。しかし、ちょうど推測する。 – KBoek

+0

私はすでに ""を試しました。\ COM7 "を使用することはできませんので、" \\。\ COM7 "はエスケープ記号なしで他のものも試してみましたが、これは私の時間の大部分を占めています。 。 – Kevin

0

あなたは既にこの回答がありますかどうかはわかりませんが、最新の.NET CFバージョン3.5を使用していることを確認してください。 .NET CF 2.0バージョンには、シリアルポートを開いたときにIOExceptionが作成されたバグがありました。 .NET CF 2.0 SPで修正されたバグを参照すると、これらが表示されます。

関連する問題