c# rs232 통신 예제

SerialPort 클래스를 사용하려면 System.IO.Ports를 사용하려면 두 개의 네임스페이스를 포함해야 합니다. System.IO 사용; 이제 SerialPort 개체를 인스턴스화해야 합니다. 여러 프레임 형식을 지정하기 위해 선택할 수 있는 생성자가 여러 개 있지만 일반적으로 가장 쉽게 사용할 수 있는 방법은 다음과 같습니다: SerialPort(문자열 portName, int baudRate) 이것의 예는 다음과 같습니다: SerialPort mySerialPort = 새 SerialPort(“COM3”, 9600); 여기 9600 baud에서 COM3를 사용하고 있습니다. 소개링크에서 전체 생성자 목록을 찾을 수 있습니다. 이제 SerialPort 개체를 만들었으니 Open() 메서드를 사용하여 포트를 열어야 합니다. 작업이 완료되면 close() 메서드를 사용하여 닫으려면 mySerialPort.Open(); mySerialPort.Close(); 몇 가지 참고 사항: 직렬 포트를 사용하는 작업을 사용할 때 오류가 발생할 가능성이 큽입니다. 이러한 이유로 우리는 try 내에서 직렬 포트에 대 한 코드를 작성 하려고 – catch 블록. 이렇게 하면 예를 들어 존재하지 않는 포트를 열려고 하면 프로그램이 충돌하지 않습니다. catch 블록 – try 내에서 개체를 인스턴스화 할 필요는 없지만 열고 닫고 읽고 쓰고 싶습니다. 이것은 단순히 직렬 포트 개체를 만들고 포트 직렬 포트 my SerialPort = 새 직렬 포트 (“COM3”, 9600)를 열고 닫습니다.

시도 { mySerialPort.Open (); mySerialPort.Close (); } 캐치 (IOException ex) { Console.WriteLine(예); } 그건 정말 포트 설정에 대 한 모든! 다음 단계에서는 직렬 포트에서 읽는 방법을 소개합니다. 이제 직렬 포트 개체를 만들고 포트를 열었으므로 이제 직렬 포트에서 읽으려고 합니다. 다음은 기본 읽기 함수입니다: (몇 가지 다른, 하지만 이들은 가장 간단 하 고 대부분의 응용 프로그램에 대 한 작동) int readChar() – 입력 버퍼 int readByte() 에서 다음 char를 반환 – 입력 버퍼 문자열 readLine() – 입력 버퍼 문자열 readExisting()에서 줄 바운더리 문자(`n`)까지 모든 것을 반환합니다. 해당 유형으로 변환하려면 해당 유형으로 타이프 캐스트해야 합니다. 바이트 next바이트 = (바이트)mySerialPort.readByte(); 다른 두 가지 방법은 매우 자명합니다. 다음 단계에서는 항구에서 읽는 방법에 대해 좀 더 자세히 설명해 보겠습니다. *기술 참고* ReadLine(), ReadExisting() 모두 입력 버퍼에서 디코딩된 바이트를 기반으로 문자열을 반환한다는 점에 유의해야 합니다. 그게 무슨 뜻인가요? 예를 들어 바이트 0x48, 0x69 및 0x0A를 받은 경우 ASCII 인코딩을 기반으로 `H`, `I` 및 `n`으로 디코딩됩니다.

하드웨어가 65(0x41)의 숫자 값을 보내고 ReadExisting()을 사용하고 콘솔 창에 반환 값을 인쇄하면 0x41을 디코딩하고 `A`로 변경했기 때문에 “A”가 아닌 “A”의 출력을 얻을 수 있기 때문에 이것은 중요합니다. 실제 숫자 값을 읽으려면 디코딩되지 않은 정수 값을 반환하므로 readByte() 또는 readChar()를 사용해야 합니다. SerialPort 클래스는 SerialPort.Encoding 속성을 통해 기본 ASCII 이외의 여러 인코딩을 지원합니다. 소개링크에는 많은 정보가 있습니다. C# SerialPort 클래스를 사용하면 C#의 직렬 포트와 통신할 수 있습니다. 직렬 포트를 통해 데이터를 작성하고 C#의 직렬 포트에 연결된 장치에서 데이터를 받는 방법을 알아봅니다. btnTest라는 버튼이 만들어지고 클릭 루틴은 다음과 같습니다 (이 코드는 목록 및 예제 프로젝트에 포함되어 있지만 사용할 주석 을 주석주석으로 주석 작성했습니다!): 핸드셰이킹은 원래 핸드셰이킹이 사용되었을 때 사용되었습니다(요즘 가장 일반적인 경우). 속도가 느렸고 데이터를 다시 보내는 데 더 많은 시간이 소요되며, 많은 양의 데이터를 전송하여 올바르게 수신되었는지 확인하는 경우에도 사용됩니다.

Posted in Uncategorised