Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема UART с одним стоповым битом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
BDEsoft
Проблема следующая.
Разрабатываю использование MASP430F149 для использования с HART протоколом. Для последнего необходимо: скорость 1200бод, 1 стоповый бит, проверка нечетности.

инициализация UART:

Код
UCTL0=CHAR+PENA;
UTCTL0=SSEL1+SSEL0;
UBR10=3;
UBR00=0x69;
UMCTL0=0XFF;
ME1=UTXE0+URXE0;
URCTL0=0;
IE1 |= URXIE0;


Выставляю в программе на компьютере данные параметры порта и на MSP ничего не приходит(точнее приходит всего одит байт (char 'д') из посылки 6 символов(ABCDEF), там же выставляю два стоповых бита , тогда приходят все символы. Вопрос, как правильно инициализировать UART MSP, чтобы он работал с одним стоповым битом. И какие при этом возникают проблемы...
rezident
Правильный алгоритм (последовательность команд) программирования UART описан в руководстве пользователя. Никаких проблем при использовании одного стопового бита не возникает, если софт написан корректно.
BDEsoft
Мне это все известно, проблема в следующем:
При отправке несколько байт с небольшими промежутками времени, процессор принимает их корректно, но при пересылке их подрят(используя функцию WriteFile) процессор их вообще не принимает.
zhek
Для корректной инициализации перед Вашим текстом взвести бит SWRST, а после всех действий его нужно сбросить. Т. е. будет так:
UCTL0=SWRST;
UCTL0 |= CHAR+PENA;
UTCTL0=SSEL1+SSEL0;
UBR10=3;
UBR00=0x69;
UMCTL0=0XFF;
ME1=UTXE0+URXE0;
URCTL0=0;
UCTL0 &= ~SWRST;
IE1 |= URXIE0;
Если у Вас SMCLK = 1 МГц, то Baudrate будет задаваться так:
UBR10=3;
UBR00=0x41;
UMCTL0=0X92;
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.