Не выходит из цикла while

Тема в разделе "Arduino & Shields", создана пользователем totoshkin, 4 авг 2021.

  1. parovoZZ

    parovoZZ Гуру

    а читаешь из
     
  2. b707

    b707 Гуру

    Тотошкин. вам точно 34? Запятая не пропушена?
    Ваша программа работает ровно так, как написана.

    Смотрите, у вас первой строко в процедуре loop() - что идет? - вот такая строчка:
    Код (C++):
    if (mySerial.available() > 0)
    Вы смысл этой строки понимаете? - она означает. что программа выполняется только тогда, когда в Сериал приходит символ.
    Получили что-то в Сериал, прошли два if - остановились. Ждем следующего символа.
     
  3. totoshkin

    totoshkin Нуб

    if(mySerial.available()>0) - я понимаю это так, что идет проверка Seriala и если там есть какой-то символ, то программа идет дальше, если нет, то не идет дальше. Нет?
     
  4. totoshkin

    totoshkin Нуб

    И почему символы не сравниваются и выполняется какой-то один if, а выполняются оба?
     
  5. Daniil

    Daniil Гуру

    Вам нужно прочитать порт, выставить нужный флаг (решить какой символ пришел).
    Вне обработчика приема данных выполнять код, соответствующий выставленному флагу.
     
  6. SergeiL

    SergeiL Оракул Модератор

    А «не идёт дальше» - это что значит?
    Что будет происходить по вашему?
     
  7. SergeiL

    SergeiL Оракул Модератор

    Да не, порт читать рано ИМХО.
    Нужно почитать что-нибудь про программирование ардуино для чайников, тогда непонятные строчки в непонятном коде могут обрести смысл.
     
    Feofan и Asper Daffy нравится это.
  8. Asper Daffy

    Asper Daffy Иксперд

    Бред. Всё там сохраняется. У Вас на второй раз проверка available не срабатывает.
    Могу объяснить, но, боюсь, Вы не будете рады, а обидитесь и назовёте меня мудаком. Объяснять?
     
  9. totoshkin

    totoshkin Нуб

    Не идет дальше - это значит, что сериал останется в режиме ожидания.
     
  10. totoshkin

    totoshkin Нуб

    Если вы начнете отвечать не конкретно про код, а про то, что мне надо почитать кучу всего, тогда лучше не стоит тратить свое время.
     
  11. parovoZZ

    parovoZZ Гуру

    а читать всё равно придётся, чтобы не писать такое:
    режим ожидания - что такое?
     
  12. b707

    b707 Гуру

    дело в том. что сейчас у вас знания по нулям и отвечать по коду бессмысленно. вам отвечают - вы ничего не понимаете.
    Сначала написали один совершенно бредовый код - вам сказали что не так - вы исправили на другой, такой же бредовый.
    Я не знаю. что может быть непонятно в том. что условие
    Код (C++):
    if (mySerial.available() > 0)
    не выполняется. если в Сериал ничего нет.
    Что тут можно не понимать вообще??

    Поэтому-то вам и советуют отложить код и прочитать учебник. Нельзя писать стихи. не зная букв.
     
  13. parovoZZ

    parovoZZ Гуру

    сова! Он посылает символ сюда
    Код (C++):
    Serial.begin(9600);
    а читает отсюда
    Код (C++):
    mySerial.begin(9600);
    Читать то, что пишет ТС и тем более верить ему, не стоит. Чтобы что-то писать, надо понимать, что пишешь. Чтобы написать так, чтобы было понятно и другим, уже мало понимать. Надо ещё и самому в этом разбираться.
     
  14. b707

    b707 Гуру

    не уверен. он там все время что-то про блютуз бормочет. Думаю, у него на аппаратном Сериале кабель в ПК, а на софтовом - блютуз-модуль.

    Но согласен с тобой. ТС постоянно несет такую околесицу, что верить на слово ему не стоит. все надо проверять. я ж не зря спросил. сколько ему лет. В профиле 34, а разговор на уровне трехлетки
     
  15. parovoZZ

    parovoZZ Гуру

    работу софтового сериала он полностью сломал своим кодом.
     
  16. b707

    b707 Гуру

    очередной халтурщик - "читать книжки некогда, разовый проект"... в итоге полная чушь в коде. которая просто не может работать
     
  17. Feofan

    Feofan Нерд

    Код (C++):
    if (val=='C');
    {
    После if(...) лишняя ";"
     
    Daniil, b707 и SergeiL нравится это.
  18. Asper Daffy

    Asper Daffy Иксперд

    Ну, если так, то на Вас действительно
    Всего наилучшего!
     
    issaom и Andrey12 нравится это.