Arduino 프로그래밍의 Serial.readBytesUntil() 함수

Arduino Peulogeulaeming Ui Serial Readbytesuntil Hamsu



Arduino로 프로그래밍할 때 입력 및 출력을 조작하는 데 사용할 수 있는 많은 함수가 있습니다. 하나의 주요 Arduino 기능은 다음과 같습니다. Serial.readBytesUntil() , 특정 문자를 찾을 때까지 스트림에서 데이터를 읽을 수 있습니다. 이 기능은 필요한 데이터를 찾을 때까지 직렬 장치에서 데이터를 읽는 데 도움이 됩니다.

이 글은 Serial.readBytesUntil() 함수를 심층적으로 컴파일합니다. 그것이 무엇인지, 어떻게 작동하는지 논의하고 Arduino 코드에서 그것을 사용하는 방법을 설명하는 Arduino 코드를 다룰 것입니다.

Serial.readBytesUntil()

Serial.readBytesUntil() 함수는 Arduino 직렬 클래스의 일부입니다. 이 함수는 특정 문자 또는 최대 바이트 수를 찾을 때까지 스트림에서 데이터를 읽습니다. 문자 또는 최대 바이트 수가 발견되면 함수는 읽기를 중지하고 읽은 데이터를 반환합니다.







Serial.readBytesUntil() 함수는 다음 조건이 충족될 때마다 종료됩니다.



  • 함수가 종료 문자를 감지하는 경우
  • 정의된 버퍼 길이에 도달했습니다.
  • 설정한 시간이 경과하거나 타임아웃

이 함수는 종결자 문자를 반환하지 않고 종결자 앞의 마지막 문자까지만 데이터를 반환합니다. 이 함수에서 0이 반환되면 유효한 데이터가 없음을 의미합니다.



통사론

Serial.readBytesUntil() 함수의 구문은 다음과 같습니다.





연속물. readBytesUntil ( 터미네이터, * 완충기, size_t 길이 ) ;

매개변수

다음은 Serial.readBytesUntil() 함수의 매개변수입니다.

  • 터미네이터 캐릭터: 함수가 읽기를 중지할 문자입니다.
  • 완충기: 버퍼에서 읽기 직렬 데이터는 다음과 같습니다. 허용되는 데이터 유형은 char 또는 byte의 배열입니다.
  • 길이: 읽을 최대 바이트 수입니다. 허용되는 데이터 유형은 정수 .

반품

버퍼에 배치된 바이트 수입니다.



노트: 반환 데이터에서 종료 문자는 데이터 스트림에서 Serial.readBytesUntil() 함수에 의해 삭제됩니다.

예제 아두이노 코드

Arduino 코드에 따라 사용법을 설명합니다. Serial.readBytesUntil() 기능:

무효의 설정 ( ) {
연속물. 시작하다 ( 9600 ) ; // 전송 속도 9600으로 직렬 연결을 초기화합니다.
}

무효의 고리 ( ) {
바이트 버퍼 [ 5 ] ; // 들어오는 데이터를 저장할 바이트 배열을 정의합니다.
정수 numBytes = 연속물. readBytesUntil ( ' \N ' , 버퍼, 5 ) ; // 개행 문자를 만날 때까지 직렬 연결에서 들어오는 데이터를 읽습니다.

만약에 ( numBytes > 0 ) { // 읽은 바이트가 있는지 확인
연속물. 인쇄 ( '받은 캐릭터: ' ) ;
연속물. 쓰다 ( 버퍼, numBytes ) ; // 받은 데이터를 시리얼 모니터로 출력
연속물. 프린트 ( ) ;
}
}

setup() 함수에서 전송 속도는 직렬 통신을 설정합니다.

loop() 함수에서 먼저 바이트 배열을 정의합니다. '완충기' . 이 배열은 직렬 연결에서 읽은 들어오는 데이터를 저장하는 데 사용됩니다.

다음으로 Serial.readBytesUntil() 개행 문자('\n')를 만날 때까지 직렬 연결에서 들어오는 데이터를 읽는 함수. 다음 인수는 한 번에 최대 5바이트의 데이터를 사용할 버퍼의 길이입니다.

반환된 바이트는 'numBytes' 변하기 쉬운. 수신된 데이터가 버퍼 길이보다 큰 경우 데이터가 종료되고 다음 데이터 스트림으로 전송됩니다.

산출

결론

그만큼 Serial.readBytesUntil() Arduino 프로그래밍의 함수는 지정된 종료 문자가 수신될 때까지 직렬 입력 스트림에서 바이트를 읽습니다. 이 함수는 읽은 총 바이트 수를 제공하고 제공된 버퍼에 저장합니다. Serial.readBytesUntil() 함수와 관련된 자세한 내용은 기사를 읽으십시오.