Arduino 지우기 직렬 버퍼

Ammar Ali 2023년10월12일
Arduino 지우기 직렬 버퍼

이 튜토리얼에서는 Arduino의 Serial.begin() 기능을 사용하여 직렬 버퍼를 지우는 방법에 대해 설명합니다.

Arduino 지우기 직렬 버퍼

모든 Arduino 보드에는 직렬 통신에 사용할 수 있는 핀이 있으며 이 핀을 사용하여 직렬 통신을 통해 데이터를 송수신할 수 있습니다. Arduino의 직렬 클래스에는 직렬 핀에 데이터를 읽고 쓸 수 있는 기능이 있습니다.

read() 함수를 사용하여 직렬 핀에서 데이터를 읽고 수신된 데이터는 코드 내부에서 사용되기 전에 버퍼 내부에 저장됩니다. 버퍼에는 데이터를 저장하는 특정 메모리가 있으며, 데이터 양이 많은 경우 메모리가 부족하지 않도록 직렬 버퍼를 지워야 합니다.

시리얼로부터 데이터를 받은 후 Serial.begin() 함수를 사용하여 시리얼을 시작할 수 있습니다.

Serial.begin() 함수는 초당 9600비트와 같은 주어진 데이터 속도로 직렬을 초기화하는 데 사용되지만 직렬을 초기화하면 직렬 버퍼 내부에 이전에 저장된 데이터가 메모리에서 제거됩니다.

예를 들어 직렬 핀을 통해 문자열을 읽고 데이터 청크를 수신한 후 직렬 버퍼를 지우고 싶다고 가정해 보겠습니다.

우리는 데이터가 시리얼 버퍼에 있는지 확인하기 위해 Serial.available() 함수를 사용할 수 있으며, 데이터가 있는 경우 데이터를 문자열 배열에 저장한 다음, Serial.begin() 함수를 사용하여 시리얼 버퍼를 지울 것입니다.

아래 예제 코드를 참조하십시오.

String value;
void setup() {}

void loop() {
  if (Serial.available()) {
    value = "";
    while (Serial.available()) {
      char data = Serial.read();
      value = value + data;
    }
    Serial.println(value);
    Serial.end();
    Serial.begin(9600);
  }
}

시리얼에서 받은 문자 데이터를 저장하기 위해 value 변수를 사용했습니다. 데이터가 있으면 배열에 추가하고 Serial.end() 함수를 사용하여 직렬 통신을 종료한 다음 직렬을 초기화하여 직렬 버퍼를 비웁니다.

직렬 통신을 종료하고 버퍼를 지우기 전에 루프를 사용하여 사용 가능한 모든 데이터를 저장했습니다.

데이터를 보내려면 Serial.flush() 함수를 사용하여 모든 데이터가 전송될 때까지 기다린 다음 직렬 통신을 종료하고 버퍼를 지울 수 있습니다.

Serial 및 해당 기능에 대한 자세한 내용은 이 링크를 확인하십시오.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - Arduino Serial