Serial.readBytesUntil()

설명

Serial.readBytesUntil() 은 시리얼 버퍼에서 문자를 읽어서 배열 안으로 넣는다. 이 함수는 종료문자가 감지되거나, 결정된 길이가 읽혀지거나, 타임아웃(참고 Serial.setTimeout()) 되면 끝난다.

이 함수는 제공된 종결자 앞의 마지막 문자까지 반환한다. 종결자 자체는 버퍼에 반환되지 않는다.

Serial.readBytesUntil() 은 버퍼에 읽어진 문자 수를 반환한다. 0은 타당한 자료를 찾지 못했음을 뜻한다.

Serial.readBytesUntil()Stream utility class 에서 상속된다.

문법

Serial.readBytesUntil(character, buffer, length)

매개변수

  • character : 찾을 문자 (char)
  • buffer: 바이트를 저장할 버퍼 (char[] or byte[])
  • length : 읽을 바이트 수 (int)

반환값

  • size_t: Serial.readBytesUntil ()은 버퍼로 읽어들인 문자 수를 반환합니다. 0은 길이 를 말합니다. ≤ 0, 다른 입력 전에 시간 초과가 발생했거나 다른 입력 전에 종료 문자가 발견되었음을 의미합니다.

예제 코드

const int BUFFER_SIZE = 100; char buf[BUFFER_SIZE]; void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { // check if data is available if (Serial.available() > 0) { // read the incoming bytes: int rlen = Serial.readBytesUntil('\n', buf, BUFFER_SIZE); // prints the received data Serial.print("I received: "); for(int i = 0; i < rlen; i++) Serial.print(buf[i]); } }
  • Select Newline at the ending selection of Serial Monitor
  • Type "HELLO" on Serial Monitor
  • Click Send button:
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • 시리얼 모니터에 결과:
COM6
Send
I received: HELLO
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ 주의 및 경고:

  • 종결 문자는 버퍼로 읽고 복사된 문자의 수가 같지 않으면 시리얼 버퍼에서 버려집니다.
  • Serial functions are not only used for the communication between an Arduino board and Serial Monitor of Arduino IDE but also used for the communication between:
  • An Arduino board and other Arduino board
  • An Arduino board and other sensors/devices
  • An Arduino board and computer (any Serial software on computer)

ARDUINO BUY RECOMMENDATION

Arduino UNO R3
Arduino Starter Kit
Please note: These are Amazon affiliate links. If you buy the components through these links, We will get a commission at no extra cost to you. We appreciate it.

※ OUR MESSAGES