Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отсутствие стоповых битов?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
Vladimir Prokofiev
Вопрос такой, я выставляю на компьютере 57600_8_N_1.
При этом, насколько я понимаю, я должен увидеть на осциллографе 10 бит, 1ый и последний -- стартовый и стоповый и 8 бит данных.
Но я вижу только 9 бит и это не зависит от того, 1 или 2 стоповых бита я выставляю -- стоповыъ битов я не вижу. Почему? Я проверял на разных компьютерах)

А вопрос, почему я этим заинтересовался -- проблемы связи по UART с Silabs C8051f061. Компьютер понимает все, что ему посылает контроллер, а контроллер понимает только одиночные байты. При пересылке нескольких байт, за первым следует всякая фигня.

Методом проб и ошибок удалось заставить работать -- установить 2 стоповые бита на компьютере. Но Мне не нравится что на контроллере установлен ОДИН стоповый бит и при передаче байта от контроллера я вижу на осциллографе ОДИН стоповый бит.



Палыч
Цитата(Vladimir Prokofiev @ Mar 9 2011, 11:13) *
Но я вижу только 9 бит и это не зависит от того, 1 или 2 стоповых бита я выставляю -- стоповыъ битов я не вижу.
Это Вы видите при передаче от ПК? Как Вам такое удалось? Какое значение имеет поле StopBits структуры DCB?
V_G
Стоповый бит как таковой не передается. Это возврат к исходному состоянию (1) после передачи последнего информационного бита (или контрольного, если он есть). Если несколько последних бит равны 1, то и возврата вы вообще не увидите. Ширина стоп-бита фактически определяет минимальную паузу между передачей двух последовательных байтов (в смысле символов, не обязательно 8-битных).
Число стоп-бит передатчика должно быть не меньше числа стоп-бит связанного с ним приемника. Если обмен двусторонний, число стоп-бит должно совпадать.
Палыч
Цитата(Vladimir Prokofiev @ Mar 9 2011, 11:13) *
Методом проб и ошибок удалось заставить работать -- установить 2 стоповые бита на компьютере.
Вероятно, скорость приёма/передачи на МК выставляется не точно (ошибка близка к 10%). Установите и на МК два стоповых бита (Mode=3, TB8=1).
Vladimir Prokofiev
Цитата(Палыч @ Mar 9 2011, 15:40) *
Вероятно, скорость приёма/передачи на МК выставляется не точно (ошибка близка к 10%). Установите и на МК два стоповых бита (Mode=3, TB8=1).


Спасибо за ответы, все понял) Я тоже сначала думал что скорости не совпадают, но осцил показал все ок. Но вот увидел эту фигню со стоповыми битами. Где-то прочитал, что стоповые биты передаются и на контроллере их увидел так что сразу поверил)
А на контроллере просто была выставлена 9-битная передача...

Всем спасибо, вопрос решен
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.