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)의 모든 메소드에서 사용할 수 있습니다. 다른 클래스에서는 사용할 수 없습니다. –