C#でシリアルポートを開いているときにこの問題が発生しています(これは単純なはずです;またはそう思いました)。
シリアル ポートを開こうとすると、次の例外が発生します。
セマフォのタイムアウト期間が過ぎました。
これを行っているメソッドは次のとおりです。
public static void Open_TheActivePortWeWillUse(String Drone_StringNameFromUser)
{
var TempSerialPort = new SerialPort (
Drone_StringNameFromUser,
(int) SerialPortParameter.TheSerialPortSpeed);
// Now we have a name that anybody can see and use
OurSpecificPorts.TheActivePortWeAreUsing = TempSerialPort;
// We'll do 8-N-1 since almost the whole planet does that
OurSpecificPorts.TheActivePortWeAreUsing.DataBits = 8;
// We'll do 8-N-1
OurSpecificPorts.TheActivePortWeAreUsing.Parity = Parity.None;
// We'll do 8-N-1
OurSpecificPorts.TheActivePortWeAreUsing.StopBits = StopBits.One;
OurSpecificPorts.TheActivePortWeAreUsing.DataReceived +=
OurBackGroundSerialPortReceiver;
// We can now open our active port, which is what this line does
OurSpecificPorts.TheActivePortWeAreUsing.Open();
}
私にとって最も奇妙なことは、このエラーが一貫していないことです。半分の時間は正常に機能し、残りの半分は機能しません。
私のコードに明らかに問題がある人はいますか? 何か不足していますか?