rs232 c++ 예제

또한 좋은 예는 MSDN @ 사용할 수 있지만 이 exapme는 겹친 I/O를 사용하는 방법을 설명합니다. 최신 Windows 시스템을 사용하여 직렬 포트에 액세스하는 것은 여전히 동일합니다. 이것은 모든 것을 아주 잘 설명하는 좋은 예입니다 : 위의 예제를 사용하여 프로젝터를 제어하고 (프로젝터를 켜십시오), 전체 명령 문자열 “1A,2B,3C,0D”의 키를 Send_Command_Pane에 입력한 다음 “보내기” 버튼을 클릭합니다… 위의 도구 모음 예제에서 프로젝터에 연결된 COM 포트는 COM 포트: 5, Baud Rate: 19,200 bps, 데이터 비트: 8, 패리티: 심지어, 비트 중지: 1. 실제 생활에서처럼 다른 작업을 듣고 적절한 액티를 취하는 것이 더 쉽습니다. 기능. 직렬 통신에 대한 동일한 보유. Hello world 예제에서 볼 수 있듯이 포트에 쓰는 것은 파일에 쓰는 것만큼 간단합니다. 데이터를 받는 것은 조금 더 어렵습니다. 데이터를 읽는 것은 그렇게 어렵지 않지만 데이터가 있고 데이터가 얼마나 많은지 알면 더 어려워집니다.

데이터가 도착할 때까지 기다려야 하며 대기 중일 때다른 작업을 수행할 수 없습니다. 이것이 바로 단일 스레드 응용 프로그램에서 문제를 일으키는 원인입니다. 이 문제를 해결하는 세 가지 일반적인 방법이 있습니다. 많은 직렬 프로토콜은 데이터 전송 중에 오류가 발생할 수 있기 때문에 체크섬(데이터 문자열 끝에 추가된 추가 바이트)을 사용하여 데이터 무결성을 확인합니다. Modula 또는 BCC에서 가장 간단한 용도부터 정교한 CRC 계산에 이르기까지 다양한 유형의 체크섬이 있습니다. Modula를 예로 들어 데이터 전송 전에 보낸 사람이 모든 명령 바이트를 함께 추가한 다음 255(소수점)로 모드화하여 추가 바이트를 얻을 수 있다는 것을 알 수 있습니다. 명령 문자열의 끝에 추가됩니다. 수신기가 명령 문자열을 수신하면 먼저 추가된 바이트를 확인하여 데이터가 변경되지 않았는지 여부를 확인합니다. 이 경우 데이터를 수락하고 그렇지 않은 경우 보낸 사람에게 데이터를 다시 보내도록 요청합니다.

K&R의 전형적인 예로 시작하여 예의 바르고 인사합시다. 구현은 매우 간단하고 다음과 같습니다 (단순성 검사에 대한 오류 검사는 없으며 실제 프로젝트에 있음) 데이터 비트는 통신 패킷의 실제 데이터 비트를 측정합니다. 예를 들어, 위의 그래픽은 통신 패킷에 8개의 데이터 비트를 나타낸다. 통신 패킷은 시작/중지 비트, 데이터 비트 및 패리티를 포함하는 단일 바이트 전송을 말합니다. 표준 ASCII 코드(0 ~127)를 전송하는 경우 7개의 데이터 비트로 충분합니다.

Geplaatst in Geen categorie