Jumping Bytes and Hopping Bits
the church of tech
Menu

윈도우 c 언어 시리얼 통신 예제 August 2, 2019

이제 소스 코드를 포함하는 Zip 파일에서 직렬 포트에 쓰기위한 전체 코드를 포함하는 “USB2SERIAL_Write_W32.c”를 찾을 수 있습니다. Visual Studio Express 또는 GCC를 사용하여 코드를 컴파일할 수 있습니다. 창에서 직렬 장치는 COM1, COM2, COM3, COM4.로 이름이 있는 장치 관리자의 com 포트 섹션에 표시됩니다. 등. 일반적으로 COM1 및 COM2는 PC에 있는 하드웨어 직렬 포트를 참조하며 PC와 연결된 직렬 장치에 대한 직렬 장치 또는 USB가 내보낼 때 다른 com 포트 번호가 내보낼 수 있습니다. 또한 com id가 가상(예: 정적 가상 COM 포트)일 수도 있습니다. 이 코드는 표준 Win32 API를 사용하여 PC 직렬 포트를 인티얼화하고 문자를 마이크로 컨트롤러 보드로 전송합니다. CreateFile() 함수를 사용하여 직렬 포트를 연 후에는 CloseHandle() 함수로 닫아야 하며, 그렇지 않으면 다른 프로그램에서포트를 사용할 수 없게 됩니다. 이제 Windows에서 직렬 포트를 열고 닫는 작은 프로그램을 작성해 보겠습니다. 메모장 이나 메모장 ++와 같은 텍스트 편집기를 열고 아래 코드를 입력 하 고 “serial.c”로 저장 합니다.

VS 익스프레스와 같은 IDE를 사용하는 경우, 통합된 IDE를 사용하십시오. COM 포트 번호 찾기내 컴퓨터 아이콘을 마우스 오른쪽 버튼으로 클릭하고 [ 장치 관리자]를 선택하여 장치 관리자를 열고 내 컴퓨터 아이콘을 클릭하고 장치 관리자를 선택하여 열때 병렬 및 직렬 포트(COM 및 LPT)를 검색한 병렬 및 직렬 포트(COM) 포트를 볼 수 있습니다. 시스템에 의해. 나는 문제에 갇혀 프로그래밍의 세계에 매우 새로운입니다. 프로젝트의 일환으로 RS 422 포트에서 단방향 통신만 있는 센서에서 데이터를 수신해야 합니다. 전송되는 패킷은 81 바이트 길이이며 다음과 같이 구성됩니다 : 안녕하세요 모두, 좋은 ………….. 나는 직렬 포트를 사용하여 파일을 작성하고 읽어야합니다, 당신은 직렬 포트를 사용하여 파일을 만들고, 열고, 쓰고, 읽고, 닫기위한 샘플 코드를 설명 해주시겠습니까? int RS232_OpenComport(int comport_number, int baudrate, const char * 모드, int flowctrl) comport를 열고, comportnumber는 0으로 시작합니다(숫자 목록 참조). Baudrate는 초당 baud 즉 115200으로 표현됩니다(가능한 보레이트 목록 참조). 모드는 8N1, “7E2” 등의 형태로 문자열이 8개의 데이터비트, 패리티 없음, 원 스톱비트를 의미한다. 의심스러운 경우 8N1을 사용합니다(가능한 모드 목록 참조).

flowctrl이 0으로 설정된 경우 흐름 제어가 사용되지 않습니다. flowctrl이 1로 설정된 경우 RTS/CTS 회선을 사용하여 하드웨어 흐름 제어가 활성화됩니다. 오류가 발생하면 1을 반환합니다. int RS232_PollComport(int comport_number, 서명되지 않은 char *buf, int 크기)는 직렬 포트에서 문자를 가져옵니다(있는 경우). Buf는 버퍼에 대한 포인터이며 버퍼 의 크기를 바이트로 크기 조정합니다. 받은 문자의 양을 버퍼에 반환합니다. 이것은 크기 또는 0보다 작을 수 있습니다! 문자를 받았는지 여부에 관계없이 차단하거나 기다리지 않으며 즉시 반환됩니다. COM 포트를 성공적으로 연 후 이 함수를 타이머에 연결합니다. 타이머의 간격은 약 100밀리초여야 합니다.

COM 포트를 닫기 전에 타이머를 중지하는 것을 잊지 마십시오. int RS232_SendByte(int comport_number, 서명되지 않은 char 바이트)는 직렬 포트를 통해 바이트를 보냅니다. 오류가 발생하면 1을 반환합니다. int RS232_SendBuf(int comport_number, 서명되지 않은 char *buf, int 크기)는 직렬 포트를 통해 여러 바이트를 보냅니다. Buf는 버퍼에 대한 포인터이며 버퍼 의 크기를 바이트로 크기 조정합니다.

Categories: Uncategorized