2
我在使用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();
}
對我來說最奇怪的是我得到這個錯誤不一致。 它的一半時間工作好吧,另一半,它不是。
有人看到我的代碼顯然有什麼問題嗎?我錯過了什麼嗎?
怎麼樣SerialDataReceivedEventHandler?我在類中聲明它,並使用類中的方法發送數據。這是行得通的;我已確認。我對我所做的任何事情都很感興趣,以後可能會再來咬我。感謝您的輸入。那麼,在您的示例中,serialPort1將在整個應用程序中可見且可用於所有方法? –
我編輯了包含初始化,發送和接收方法的答案。在我的示例中,是的,serialPort1可用於類(Form1)中的所有方法。它不適用於其他類。 –