위의 예제를 컴파일하려면 컴파일러가 필요합니다. cl.exe(Visual C++의 Microsoft 컴파일러) 또는 gcc(MinGW 소프트웨어 제품군의 일부)는 잘 됩니다. 둘 다 무료로 다운로드 할 수 있습니다. Windows 7을 사용했는지 여부에 관계없이 컴파일러를 설치해야 합니다. 이제 SetCommState() 함수를 사용하여 DCB 구조에 따라 직렬 포트를 구성할 시간입니다. 나는 이 죄송합니다 같은 null 모뎀 케이블을 사용하여 직렬 포트에 마이크로 컨트롤러 보드 (MSP430G2553)를 인터페이스한, 난 당신이 원하는 정확히 이해하지 않습니다. 직렬 포트에 연결된 장치에서 데이터를 읽고 해당 데이터를 파일에 저장한 다음 나중에 파일에서 데이터를 검색하여 직렬 포트를 통해 다시 전송하려는 것을 의미합니까? 열린 직렬 포트에 데이터를 쓰는 것은 WriteFile() 함수에 의해 수행됩니다. WriteFile() 함수를 사용하여 파일과 I/O 포트에 모두 쓸 수 있습니다. DCB 구조를 구성하려면 직렬 포트의 현재 제어 설정을 검색하는 GetCommState() 함수와 직렬 포트를 DCB 구조의 새 값으로 구성하는 SetCommState() 함수를 두 가지 함수를 사용합니다. 귀하의 설명과 QBASIC의 이전 사용에 따라 문제를 해결하기 위해 파이썬을 보는 것이 좋습니다. 내가 몇 가지 직렬 통신을 수행하려고 했다 Wim Bruyn에 쓴이 코멘트를 보세요: 난 당신이 Visual C ++에서 컴파일 될 수 있습니다 추측 해요 – 그 게 맞습니까? 이것은 동일한 함수의 유니코드 또는 비 유니코드 버전과 관련된 이상한 문제 중 하나처럼 들립니다. 예를 들어 CreateFile과 같은 Win32 함수를 사용하는 경우 실제로 함수의 가능한 두 버전 중 하나인 CreateFileW라는 유니코드 버전 또는 CreateFileA라는 비유니코드(ANSI) 버전 중 하나를 사용하는 것입니다. 선택한 프로젝트 설정에 따라 프로그램이 사용할 수 있습니다.

많은 Microsoft의 Win32 함수는 텍스트 문자열을 인수로 사용하고 값을 반환하기 때문에 단일 바이트 ascii 문자열이 아닌 유니코드 문자열을 사용하는 모든 함수의 두 번째 버전을 만들었습니다. 그러나 항상 동일한 함수 이름을 계속 사용할 수 있도록 만들었으며 프로젝트 설정에 따라 적절한 버전의 함수(유니코드 또는 비유니코드)가 사용됩니다. 예를 들어 CreateFile 함수를 사용한다고 가정해 보겠습니다. 프로젝트가 유니코드를 사용하도록 설정된 경우 CreateFileW 함수가 실제로 사용되고 파일 이름과 같은 것들이 유니코드 문자열로 지정됩니다. 프로젝트가 유니코드를 사용하도록 설정되지 않은 경우 CreateFileA가 대신 사용되고 파일 이름은 단일 바이트 ascii 문자의 문자열로 지정됩니다. 안녕하세요 모두, 그것의 좋은 ………….. 나는 직렬 포트를 사용하여 파일을 작성하고 읽어야합니다, 당신은 직렬 포트를 사용하여 파일을 만들고, 열고, 쓰고, 읽고, 닫기위한 샘플 코드를 설명 해주시겠습니까? ReadFile() 함수는 직렬 포트에서 읽는 쓰기 대신 이전에 보았던 WriteFile() 함수와 유사합니다. 웹 사이트의 소스 코드에는 직렬 포트 프로그래밍 프로세스를 강조하기 위해 관련 섹션만 표시됩니다.

새 데이터가 PC의 직렬 버퍼에 도착할 때 일종의 인터럽트를 생성하거나 콜백 함수를 트리거 할 수 있다고 생각하지만 항상 더 간단해 보이는 폴링 을 사용했습니다. SetTimer 함수를 사용하여 Win32 타이머를 설정하여 주기적으로 데이터에 대한 직렬 버퍼를 확인하고 대기 중이면 데이터로 작업을 수행할 수 있습니다. 직렬 입력 버퍼에서 대기 중이면 데이터를 확인하려면 ComSTAT 구조에 대한 포인터를 전달하는 Win32 함수 ClearCommError를 호출할 수 있습니다. ClearCommError는 아직 읽지 않은 바이트 수를 포함하여 직렬 포트의 현재 상태에 대한 정보로 COMSTAT 구조를 채웁니다(COMSTAT 구조의 cbInQue 멤버에서).

c언어 시리얼통신 예제