미친해커

[C] Serial Monitor Step 8 - 전송받은 데이터 출력하기 본문

C/Serial Monitor

[C] Serial Monitor Step 8 - 전송받은 데이터 출력하기

미친해커 2022. 1. 1. 02:48
반응형

이제 대부분의 기본적인 함수는 완성되었다. 이제 이 함수들을 사용하여 시리얼 포트로부터 데이터를 받아 출력해보는 코드를 작성해보자

#include "SerialMonitor.h"

int main(int argc, char *argv[])
{
    if (argc < 2)
    {
        printf("Usage : Program.exe [Com Number]\n");
        return -1;
    }

    DWORD ComNumber = atoi(argv[1]);

    HANDLE hComm = GetCommHandleByComNumber(ComNumber);

    if (hComm == INVALID_HANDLE_VALUE)
    {
        return -1;
    }

    if (SetBaudRate(hComm, 115200) == FALSE)
    {
        return -1;
    }

    while (TRUE)
    {
        char buffer[32] = { 0, };
        if (SerialRead(hComm, buffer, 32) != 0)
            printf("%s", buffer);
    }
}

커맨드 인자로 시리얼 포트 번호를 입력받아 해당 시리얼의 핸들을 얻어 해당 핸들로부터 읽어들인 데이터가 있으면 printf 함수를 이용해 출력하는 예제이다. 아두이노에 업로드한 코드는 다음과 같다.

void setup()
{
    Serial.begin(115200);
}

void loop()
{
    Serial.println("Hello World Arduino!");
    delay(500);
}

콘솔창에 0.5초에 한번씩 "Hello World Arduino!" 라는 문자열이 정상적으로 출력된다면 성공이다.

 

반응형
Comments