질문
아두이노 Serial.available 함수에 관하여.. 채택 100% / 내공팍팍
비공개
조회수 3,033
작성일2016.08.18
아두이노에서 available 이 입력한 바이트 수만큼 돌아가는지 확인해볼려고 한번 만들어봤는데
변수 i 가 바이트 수만큼 증가하긴하는데 하나씩 증가안하고 엄청 튀다가 증가하네요 이유가도대체 뭘까요?
int i=0;
void setup() {
Serial.begin(9600);
}
void loop() {
char my;
if(Serial.available())
{
Serial.print(Serial.available());
Serial.println();
my=Serial.read();
//Serial.print(my);
i++;
}
Serial.println(i);
delay(100);
}
답변자님,
정보를 공유해 주세요.
1번째 답변
강릉바다
지존
프로그래밍, MS엑셀, 베이직 분야에서 활동
본인 입력 포함 정보
안녕하세요?
정상입니다.
우선 스케치를 조금 정리했습니다.
동일한 내용이지만 보다 알기 쉽게 했습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | int i = 0; void setup() { Serial.begin(9600); } void loop() { char my; if (Serial.available()) { Serial.print("Serial.available() : "); Serial.println(Serial.available()); my = Serial.read(); i++; } Serial.print("i : "); Serial.println(i); delay(1000); } | cs |
이제 실행 결과를 보세요.
처음에 i값이 0입니다.
그리고 제가 123을 시리얼 전송했습니다.
그랬더니 3바이트를 읽을 수 있다고 표시하고
1바이트를 읽고 i값을 증가시켜 1이 되고,
다시 남은 2바이트를 읽을 수 있다고 표시하고
1바이트를 읽고 i값을 증가시켜 2가 되고,
남은 1바이트를 읽을 수 있다고 표시하고
마지막 1바이트를 읽고 i값을 증가시켜 3이 됩니다.
도움이 되셨으면 좋겠습니다.
감사합니다.
2016.08.18.
-
채택
질문자가 채택한 답변입니다.
-
출처
본인작성
도움이 되었다면 UP 눌러주세요!
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
UP이 많은 답변일수록 사용자들에게 더 많이 노출됩니다.
최근 공지사항이 없습니다.