반응형
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
- 네트워크 바이트 오더
- 개발하기
- vcruntime.dll
- ucrtbase.dll
- pcap packet capture
- apphelp.dll
- 개발 환경 준비
- IAT Hooking
- windows kernel debugging
- Network Byte Order
- 시스템해킹
- Windows Kernel Driver
- 윈도우 커널 드라이버
- Windows
- Windows Kernel
- 윈도우 커널 디버깅
- packet capture
- 해킹
- Windows Kernel Debug
- vcruntime140.dll
- 바이트 오더
- hacking
- Msvcrt.dll
- HackCTF
- C언어 패킷캡쳐
- arudino
- 윈도우 커널
- pwnable
- 포너블
Archives
- Today
- Total
미친해커
[Arduino] 아두이노 시리얼 포트로 데이터 받기 본문
반응형
저번 포스팅에서 아두이노가 시리얼 포트로 데이터를 전송했다면 이번엔 아두이노가 시리얼 포트로 데이터를 받는 함수들과 방법을 알아보자.
첫번째 Serial.read()
매개 변수
- 없다.
반환 데이터
- 시리얼 포트로 들어온 데이터의 첫 바이트를 반환한다. (데이터가 없으면 -1을 반환한다)
예제 코드void setup() { Serial.begin(115200); } void loop() { int ch = Serial.read(); if (ch != -1) { Serial.print(ch); } }
코드 설명
- 시리얼 포트에서 1 바이트를 읽고 그 데이터가 -1 아니면 시리얼 포트로 들어온 데이터를 전송한다.
두번째 Serial.readBytes(buffer, length)
매개 변수
- buffer : 데이터를 저장할 버퍼의 포인터
- length : 읽을 데이터의 길이
반환 데이터
- 버퍼로 읽어들인 데이터의 길이
예제 코드
void setup() { Serial.begin(115200); } void loop() { char buffer[128] = { 0, }; size_t length = Serial.readBytes(buffer, 128); if (length != 0) { Serial.println(length); } }
코드 설명
- 시리얼 포트로부터 최대 128 바이트의 데이터를 읽어들이고 읽어드린 데이터의 길이를 시리얼 포트로 전송한다.
세번째 Serial.readBytesUntil(character, buffer, length)
매개 변수
- character : 검색할 문자 (char 형이여야 함)
- buffer : 데이터를 저장할 버퍼의 포인터
- length : 읽을 데이터의 길이
반환 데이터
- 버퍼로 읽어들인 데이터의 길이
예제 코드
void setup() { Serial.begin(115200); } void loop() { char buffer[128] = { 0, }; size_t length = Serial.readBytesUntil(NULL, buffer, 128); if (length != 0) { Serial.println(length); } }
코드 설명
- NULL 문자를 만날 때까지 최대 128 바이트 만큼 데이터를 읽어들인다. 그리고 읽어 들인 데이터의 길이를 시리얼 포트로 전송한다.
네번째 Serial.readString()
매개 변수
- 없음
반환 데이터
- 읽어들인 문자열에 대한 String 객체를 반환
예제 코드
void setup() { Serial.begin(115200); } void loop() { String string = Serial.readString(); if (string.length() > 0) Serial.print(string); }
코드 설명
- 전송 받은 문자열이 있으면 해당 문자열을 읽어들이고 시리얼 포트로 전송한다.
다섯번째 Serial.readStringUntil(terminator)
매개 변수
- terminator : 검색할 문자 (char 형이여야 함)
반환 데이터
- 검색할 문자까지 읽어들인 문자열에 대한 String 객체를 반환
예제 코드
void setup() { Serial.begin(115200); } void loop() { String string = Serial.readStringUntil('A'); if (string.length() > 0) Serial.print(string); }
코드 설명
- 'A' 라는 문자까지 문자열을 읽어들이고 해당 문자열을 시리얼 포트로 전송한다.
이렇게 수 많은 데이터를 읽는 함수가 존재하지만 사실상 사용하는 함수는 정해져 있는것 같다.
반응형
'Arduino' 카테고리의 다른 글
[Arduino] 디지털 핀을 시리얼 포트로 사용하기 (SoftwareSerial) (0) | 2022.01.16 |
---|---|
[Arduino] 아두이노 시리얼 포트로 데이터 전송하기 (0) | 2021.12.29 |
[Arduino] 아두이노 Baud Rate 설정 (0) | 2021.12.28 |
[Arduino] 아두이노 첫 시작 (기초공부) (0) | 2021.12.26 |
Comments