반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- pcap packet
- apphelp.dll
- Windows Kernel Driver
- 네트워크 바이트 오더
- 윈도우 커널
- pwnable
- packet capture
- windows kernel debugging
- 포너블
- arudino
- ucrtbase.dll
- hacking
- Msvcrt.dll
- 개발 환경 준비
- 시스템해킹
- C언어 패킷캡쳐
- 윈도우 커널 디버깅
- 개발하기
- Windows
- 바이트 오더
- vcruntime.dll
- 윈도우 커널 드라이버
- Network Byte Order
- HackCTF
- 해킹
- vcruntime140.dll
- Windows Kernel
- pcap packet capture
- IAT Hooking
- Windows Kernel Debug
Archives
- Today
- Total
미친해커
[C] Serial Monitor Step 3 - 데이터 읽기 본문
반응형
이제는 데이터를 읽을 차례이다. Windows에서 Baud Rate는 기본적으로 9600으로 설정되는 모양이다. 하지만 나는 직접 115200을 설정해 사용할 생각이다. 우선 다음과 같은 코드를 아두이노에 업로드했다.
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println("Hello World Arduino!");
delay(1000);
}
간단하게 설명하자면 begin 함수를 Baud Rate를 설정하는 함수이다. 그리고 1초에 한번씩 "Hello World Arduino!"라는 문자열을 시리얼 포트로 보낸다. 우리는 이 데이터를 Windows에서 읽어 출력하면 성공이다.
Windows에서 Handle을 이용해 데이터를 읽는 함수는 ReadFile 함수가 있다. 우리는 이 함수를 이용해 데이터를 읽어올 것이다.
#include <stdio.h>
#include <windows.h>
int main(int argc, char *argv[])
{
HANDLE hComm = CreateFileA("\\\\.\\COM3", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hComm == INVALID_HANDLE_VALUE)
{
printf("CreateFileA Failed\n");
printf("GetLastError : %d\n", GetLastError());
return -1;
}
DCB state = { 0, };
GetCommState(hComm, &state);
state.BaudRate = 115200;
SetCommState(hComm, &state);
while (TRUE)
{
char buffer[32] = { 0, };
if (ReadFile(hComm, buffer, 32, NULL, NULL))
printf("%s", buffer);
}
CloseHandle(hComm);
}
아두이노는 반복적으로 "Hello World Arduino!" 문자열을 시리얼 포트로 전송하기 때문에 위와 같이 반복문을 만들어 계속해서 출력시킨다면 "Hello World Arduino!" 문자열이 1초에 한번씩 출력될 것이다.
반응형
'C > Serial Monitor' 카테고리의 다른 글
[C] Serial Monitor Step 4.5 - CommTimeouts (0) | 2021.12.27 |
---|---|
[C] Serial Monitor Step 4 - 데이터 쓰기 (0) | 2021.12.27 |
[C] Serial Monitor Step 2 - Baud Rate 설정 (0) | 2021.12.26 |
[C] Serial Monitor Step 1 - 통신수단을 알아보자 (0) | 2021.12.26 |
[C] Serial Monitor Step 0 - 자작 Serial Monitor 모듈 만들기 (0) | 2021.12.26 |
Comments