GenaSPB 11 9 июня, 2016 Опубликовано 9 июня, 2016 · Жалоба Запускаю программу, которая считывает информацию с com порта (программа работает 100% правильно), она в тестовый файл записывает значение 200(правильное значение). В следующий раз, после перезапуска программы, в текстовый файл она записывает величину 14. Потом снова 200. Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Isaev_ivan 0 9 июня, 2016 Опубликовано 9 июня, 2016 · Жалоба Genadi Zawidowski, спасибо, будем пробовать! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 9 июня, 2016 Опубликовано 9 июня, 2016 · Жалоба Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет. Не обязательно. Можно наоборот - больше 0-ей посылать. Приёмник будет периодически вылетать во frame-error, пока не найдёт правильный старт. Плохо если идёт поток чего-то повторяющегося, типа: 0xF7,0xF7,0xF7,0xF7,... - в этом случае никогда не вылетит. Можно не только паузы делать, можно использовать BREAK для установки правильной битовой синхронизации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 9 июня, 2016 Опубликовано 9 июня, 2016 · Жалоба ПОток нулей не годится. Так как ноль он стартовый бит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mcheb 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба ПОток нулей не годится. Так как ноль он стартовый бит. Тема избитая и изъеженная. Бит - байт стаффинг, ЦеЭрЦе и тд. Тайм-аут Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 236 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба ПОток нулей не годится. Так как ноль он стартовый бит. Стартовый бит это не 0. Это переход 1->0 с последующим сэмплированием линии на наличие нуля в одном или нескольких пробах на частоте оверсемплинга x16. Вот если все эти условия выполняются, тогда и принимается решение что имеется старт-бит. А просто сплошной 0 - это сигнал BREAK. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться