[code]
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0)
{
while ((Serial.available() > 0))
{
char v = Serial.read();
}
Serial.println("PRIKOL");
}
}
[/code]
В цикле while я пытаюсь опустошить порт, затем вывести текст “PRIKOL”.
Если в монитор порта ввести три символа: “123”, то этот текст выводится ПЯТЬ раз, а не ОДИН раз как ожидалось.
То есть выводится столько раз, сколько байт пришло в порт: три значимых плюс два управляющих. Почему так?
Спасибо!
Я понимаю так, что if сработает только тогда, когда буфер будет заполнен полностью, то есть, в буфере окажется пять байт. И этот if должнен захватить этот блок и дать возможность отработать while.