GenaSPB 18 June 9, 2016 Posted June 9, 2016 · Report post Запускаю программу, которая считывает информацию с com порта (программа работает 100% правильно), она в тестовый файл записывает значение 200(правильное значение). В следующий раз, после перезапуска программы, в текстовый файл она записывает величину 14. Потом снова 200. Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет. Quote Share this post Link to post Share on other sites More sharing options...
Isaev_ivan 0 June 9, 2016 Posted June 9, 2016 · Report post Genadi Zawidowski, спасибо, будем пробовать! Quote Share this post Link to post Share on other sites More sharing options...
jcxz 312 June 9, 2016 Posted June 9, 2016 · Report post Если передатчик сплошным потоком в старт-стопном формате посылает что-то отличающееся от 0xFF - приемник вполне может попасть в "синхронизацию" на каком-то нулевом бите в потоке данных. И не выйти из этого состояния (приём искаженных значений) до паузы или 0xFF. Вставляйте в поток данных от передатчика 0xFF и посмотрите, что будет. Не обязательно. Можно наоборот - больше 0-ей посылать. Приёмник будет периодически вылетать во frame-error, пока не найдёт правильный старт. Плохо если идёт поток чего-то повторяющегося, типа: 0xF7,0xF7,0xF7,0xF7,... - в этом случае никогда не вылетит. Можно не только паузы делать, можно использовать BREAK для установки правильной битовой синхронизации. Quote Share this post Link to post Share on other sites More sharing options...
GenaSPB 18 June 9, 2016 Posted June 9, 2016 · Report post ПОток нулей не годится. Так как ноль он стартовый бит. Quote Share this post Link to post Share on other sites More sharing options...
mcheb 0 June 10, 2016 Posted June 10, 2016 · Report post ПОток нулей не годится. Так как ноль он стартовый бит. Тема избитая и изъеженная. Бит - байт стаффинг, ЦеЭрЦе и тд. Тайм-аут Quote Share this post Link to post Share on other sites More sharing options...
jcxz 312 June 10, 2016 Posted June 10, 2016 · Report post ПОток нулей не годится. Так как ноль он стартовый бит. Стартовый бит это не 0. Это переход 1->0 с последующим сэмплированием линии на наличие нуля в одном или нескольких пробах на частоте оверсемплинга x16. Вот если все эти условия выполняются, тогда и принимается решение что имеется старт-бит. А просто сплошной 0 - это сигнал BREAK. Quote Share this post Link to post Share on other sites More sharing options...