реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблема UART с одним стоповым битом
BDEsoft
сообщение Mar 28 2006, 05:38
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 27-03-06
Из: Волгодонск
Пользователь №: 15 557



Проблема следующая.
Разрабатываю использование 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, чтобы он работал с одним стоповым битом. И какие при этом возникают проблемы...


--------------------
Новая акция от Microsoft... Сдается рекламное место в сообщениях об ошибке!!!
Go to the top of the page
 
+Quote Post
rezident
сообщение Mar 28 2006, 08:48
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Правильный алгоритм (последовательность команд) программирования UART описан в руководстве пользователя. Никаких проблем при использовании одного стопового бита не возникает, если софт написан корректно.
Go to the top of the page
 
+Quote Post
BDEsoft
сообщение Mar 29 2006, 07:14
Сообщение #3





Группа: Новичок
Сообщений: 3
Регистрация: 27-03-06
Из: Волгодонск
Пользователь №: 15 557



Мне это все известно, проблема в следующем:
При отправке несколько байт с небольшими промежутками времени, процессор принимает их корректно, но при пересылке их подрят(используя функцию WriteFile) процессор их вообще не принимает.


--------------------
Новая акция от Microsoft... Сдается рекламное место в сообщениях об ошибке!!!
Go to the top of the page
 
+Quote Post
zhek
сообщение Mar 29 2006, 11:46
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 29-12-05
Из: Екатеринбург
Пользователь №: 12 692



Для корректной инициализации перед Вашим текстом взвести бит 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;
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 20:47
Рейтинг@Mail.ru


Страница сгенерированна за 0.02255 секунд с 7
ELECTRONIX ©2004-2016