Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4: USART Parity
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
k000858
Странно: на UART_PARITY_NONE USART с COM-портом работает корректно.
на UART_PARITY_EVEN и UART_PARITY_ODD нет.

Даже если замкнуть Rx с Tx - получаю, не то что отправляю.
Глючит именно передатчик.

ктонибудь сталкивался с такой проблемой на данном контроллере?
Obam
Флаг PE при приёме есть, да?
Осциллографом неправильность формирования паритета из передатчика видна?
k000858
Цитата(Obam @ May 31 2016, 14:59) *
Флаг PE при приёме есть, да?
Осциллографом неправильность формирования паритета из передатчика видна?

осциллограммы пока не смотрел

пока тест такой: настроил ЮАРТ 8N1, отправил строку, ком-портом получил - все ок
настроил на 8E1, отправил в КОМ-порт, получил совсем не то (малая часть байт символом совпадает)
настроил на 8O1, отправил в КОМ-порт, получил аналогично не то

при этом на ПК формат менять не забываю (8E1, 8N1).

ViKo
Джедаю надо или продолжать убиваться об Куб, или заглянуть в руководство и прочитать про биты M, PCE, PS.
k000858
Цитата(ViKo @ May 31 2016, 16:18) *
Джедаю надо или продолжать убиваться об Куб, или заглянуть в руководство и прочитать про биты M, PCE, PS.

Парити контроль инейбл + парити селекшин биты в контрольном регистре ЮАРТ ?
а как по-вашему я настраиваю ЮАРТ на 8E1/8O1 не юзая эти биты?
ViKo
А M?
k000858
Цитата(ViKo @ May 31 2016, 16:30) *
А M?

М????

длинна данных?
mantech
Цитата(k000858 @ May 31 2016, 15:05) *
настроил на 8E1, отправил в КОМ-порт, получил совсем не то (малая часть байт символом совпадает)


А из компа в МК принимает правильно, приемник-то работает?
ViKo
Цитата(k000858 @ May 31 2016, 15:34) *
М????

длинна данных?

Bit8 Possible parity bit
P.S. длина пишется с одним "н".
Obam
Цитата(k000858 @ May 31 2016, 16:05) *
осциллограммы пока не смотрел


Дык в первую очередь осциллом надо, вы словно не с "железом" работаете (:

В общем, сообщество, не будем мешать, "…пусть Володя помучается…"
k000858
Цитата(Obam @ May 31 2016, 18:36) *
Дык в первую очередь осциллом надо, вы словно не с "железом" работаете (:

В общем, сообщество, не будем мешать, "…пусть Володя помучается…"

осциллом пока не поймали. осложнение в том, что если слать 1 байт то все ок.
то есть посылка с ПК не отличает от посылки с МК

проблема наблюдается при посылке пачки байт: 1й ок а часть последующих коверкается.
проблема именно со стороны передатчика МК

Так же если замкнуть RX с TX, заметно, что получаем не то, что отправляли

Цитата(ViKo @ May 31 2016, 16:53) *
Bit8 Possible parity bit
P.S. длина пишется с одним "н".

WordLength сделал 9 бит - заработало.
вы намекали на это?
Код
When the parity
control is enabled, the computed parity is inserted at the MSB position (9th bit if M=1; 8th bit
if M=0) and parity is checked on the received data. This bit is set and cleared by software.


как то не логично: если выбрал Even, то и выбрал 9 бит, а на ПК оставляешь 8 бит. как то не сходится. но работает.

можете разжевать? недопонимаю..
ViKo
Да, на это. Чего там разжевывать, я картинку посмотрел, и надпись на ней процитировал. Бит четности, если он используется, вставляется на место старшего бита в данные. Такая логика. Меня устраивает. Правда, я четность не использую, другими механизмами проверки достоверности передачи пользуюсь, (там, где считаю нужным).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.