Перейти к содержанию
    

Запускаю программу, которая считывает информацию с com порта (программа работает 100% правильно), она в тестовый файл записывает значение 200(правильное значение). В следующий раз, после перезапуска программы, в текстовый файл она записывает величину 14. Потом снова 200.

 

Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет.

Не обязательно. Можно наоборот - больше 0-ей посылать. Приёмник будет периодически вылетать во frame-error, пока не найдёт правильный старт. Плохо если идёт поток чего-то повторяющегося, типа: 0xF7,0xF7,0xF7,0xF7,... - в этом случае никогда не вылетит. Можно не только паузы делать, можно использовать BREAK для установки правильной битовой синхронизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПОток нулей не годится. Так как ноль он стартовый бит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПОток нулей не годится. Так как ноль он стартовый бит.

Тема избитая и изъеженная. Бит - байт стаффинг, ЦеЭрЦе и тд. Тайм-аут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ПОток нулей не годится. Так как ноль он стартовый бит.

Стартовый бит это не 0.

Это переход 1->0 с последующим сэмплированием линии на наличие нуля в одном или нескольких пробах на частоте оверсемплинга x16. Вот если все эти условия выполняются, тогда и принимается решение что имеется старт-бит.

А просто сплошной 0 - это сигнал BREAK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...