Softwareserial

Тема в разделе "Arduino & Shields", создана пользователем Илья22, 26 янв 2021.

  1. parovoZZ

    parovoZZ Гуру

    Это если используется ASCII. А если нет, то и символов таких тоже нет.
     
  2. vlanaz

    vlanaz Нуб

    Это был комментарий к вопросу от Илья22. Как правило COM порт используют без ASCII, редко с управляющими битами DCD/DSR/DTR/RTS/CTS, так как для этого надо больше 3-х проводов, а чаще всего асинхронно без управления. Поэтому в приличном терминале всегда есть настройка на аппаратный, программный режим управления каналом или без управления. Если аппаратный, управляем каналом битами, если программный - спецсимволами, а без управления - надеемся и ждем, что с другой стороны все прилетает О.К.
    Здесь именно такой случай. Неправильно опознаются стартовый и стоповый бит или биты. Управления каналом нет, и когда с другой стороны прилетает непонятная последовательность бит, терминал на лету и интерпретирует ее, как может. Поэтому и мусор на экране. Если его посмотреть в HEX формате, там, скорее всего, будет прилетать 0xFF и эпизодически некоторые странные байты. Канал асинхронный, и при первой посылке он еще может временно войти в синхронизацию, если скорости приемника и передатчика близки, и даже вернуть несколько правильных байт. Как у Илья22 происходит с посылкой "0test". А потом входной поток скользя по времени выходит из синхронизации и начинает сыпать мусор.
     
  3. Ariadna-on-Line

    Ariadna-on-Line Гуру

    В асинхронном приемнике есть цепь автосинхронизации с входным сигналом. Он потому и асинхронный, что не требует внешнего синхро-сигнала. Вы хотите сказать, что либо у передатчика слишком большое отклонение частоты от стандарта и синхронизатор не справляется, либо "завалена" частотная характеристика канала связи, либо дело в приемнике. По фронтам переходов подстраивается синхронизатор приемника - это речь о частотной характеристике канала. Если приемником является Сериал-УСБ конвертор, то что мешает его заменить, он копейки стоит ?
     
    Последнее редактирование: 7 фев 2021
  4. geher

    geher Гуру

    Таки тип.
    Их всего пять.
    1. Отсутствие бита четности - None
    2. Бит контроля четности указывает на четность - Even
    3. Бит контроля четности указывает на нечетность - Odd
    4. Бит контроля четности всегда 0 - Space
    5. Бит контроля четности всегда 1 - Mark

    Если мне не изменяет память, то ардуина работает в режиме 8N1 (восемь бит данных, без бита четности, один стоповый бит).

    Аппаратный контроль передачи данных - это использование управляющих линий стандартного последовательного порта RS232 (RTS и CTS).
    Программный контроль передачи - использование специальных символов в передаче.
    Для ардуины контроль потока должен быть выключен (в силу отсутствия у нее соответствующих физических линий и отсутствия реализации программного контроля).
    В теории, конечно, преобразователь UART-USB на пару с драйвером может эмулировать контроль передачи данных (как аппаратный, так и программный), но пока вживую такого не встречал.

    Все эти параметры влияют на возможность обмена данными по порту. А искать их следует в настройках программы на компьютере, которая общается с ардуиной по соответствующему последовательному порту (например, терминалу). Если таких настроек в программе нет, то можно попробовать выяснить в описании программы, какие настройки порта она использует.
    Опять же, это только один из возможных источников проблемы, который можно проверить и исключить.
     
  5. parovoZZ

    parovoZZ Гуру

    Бит контроля чётности. Вычисляется на основе передаваемых данных. Нет никакого типа.
     
  6. Quelahanad

    Quelahanad Нуб

    ты используешь хардварный?