Показано с 1 по 6 из 6
  1. #1
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    48
    Сообщений
    320
    Вес репутации
    326

    По умолчанию Serial.flush(); странно работает

    Вот скетч:

    PHP код:
    int ledPin 13;
    int EN 2;
    int val;
    int otkomp
     
     
    void setup()
    {
      
    pinMode(ledPinOUTPUT);
      
    pinMode(ENOUTPUT);
      
    Serial.begin(19200);
       
    digitalWrite(ENLOW);
    }
     
    void loop()
    {
     
    // delay(5000);
      
    Serial.flush(); 
     if(
    Serial.available())   //ждем команды с компьютера
        
    {
        
        
    otkomp Serial.read();
          if(
    otkomp == 'v')digitalWrite(ledPin,HIGH);
          if(
    otkomp == 'o')digitalWrite(ledPin,LOW);
        }  

    В Serial Monitor пишу символ 'v', диод не зажигается, так и должно быть, а вот если пишу два с символа 'vv', то зажигается. На один символ Serial.flush(); срабатывает, а на два и больше нет. Почему так?

  2. #2
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    48
    Сообщений
    320
    Вес репутации
    326

    По умолчанию Re: Serial.flush(); странно работает

    А вот если паузу delay(1); поставить перед Serial.flush();, то всё нормально.

  3. #3
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Serial.flush(); странно работает

    if(Serial.available()) //здесь мы не ждем, а проверяем есть ли в буфере данные. Но так как мы только что очистили буфер, данные в буфер никогда не успеют придти. Для получения одного байта на скорости 19200 нужно ждать 570мкс, при условии что источник на другом конце UART шлет данные беспрерывным потоком
    Последний раз редактировалось Chip; 03.12.2012 в 01:51.

  4. #4
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    48
    Сообщений
    320
    Вес репутации
    326

    По умолчанию Re: Serial.flush(); странно работает

    Дык почему не очищается буфер то?

  5. #5
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Serial.flush(); странно работает

    А что тогда по твоему делает Serial.flush();

  6. #6
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    48
    Сообщений
    320
    Вес репутации
    326

    По умолчанию Re: Serial.flush(); странно работает

    Я совсем запутался....

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •