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

 
 
> STM32F103 проблемы с контролем четности USART, I need help
sidy
сообщение Aug 31 2018, 13:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333



Добрый день.

Потребовалось использовать контроль четности в USART (STM32f103) и возникла проблема. При отсутствии контроля четности прием идет правильно. Например посылка:
01 04 00 41 00 01 224 02
принимается должным образом.
При включении контроля четности, например odd принимаю ту же самую посылка следующим образом:
01 04 256 41 256 01 224 02
Т.е. вместо 0 принимается 256

Вот код инициализации USART:
RCC->APB2ENR|=RCC_APB2ENR_USART1EN;
USART1->CR1=USART1->CR2=USART1->CR3=0;
USART1->BRR=CPU_CLOCK/BAUD_RATE;
USART1->CR1|=USART_CR1_M;
USART1->CR1|=USART_CR1_PCE;
USART1->CR1|=USART_CR1_PS;
USART1->CR1|=USART_CR1_TE;
USART1->CR1|=USART_CR1_RE;
USART1->CR1|=USART_CR1_TCIE;
USART1->CR1|=USART_CR1_RXNEIE;

Подскажите в чем может быть дело.

Сообщение отредактировал sidy - Aug 31 2018, 13:19
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Aug 31 2018, 13:10
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



256 не влазит в 8-битовый байт. rolleyes.gif Дело в интерпретации числа 0x100.
Go to the top of the page
 
+Quote Post
sidy
сообщение Aug 31 2018, 13:17
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333




Еще забыл добавить при контроле четности Even, посылка будет выглядеть так:
257 260 00 297 257 480 258
т.е. как-будто к каждому числу прибавили 256

Цитата(ViKo @ Aug 31 2018, 16:10) *
256 не влазит в 8-битовый байт. rolleyes.gif Дело в интерпретации числа 0x100.


т.е. нужно дополнительно преобразовывать значения в зависимости от того какой контроль четности используется?

Сообщение отредактировал sidy - Aug 31 2018, 13:19
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 31 2018, 18:13
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(sidy @ Aug 31 2018, 16:17) *
т.е. нужно дополнительно преобразовывать значения в зависимости от того какой контроль четности используется?

Так сразу интерпретируйте как 8-битов.
Go to the top of the page
 
+Quote Post
sidy
сообщение Aug 31 2018, 18:16
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 280
Регистрация: 2-11-08
Пользователь №: 41 333



Цитата(ViKo @ Aug 31 2018, 21:13) *
Так сразу интерпретируйте как 8-битов.

Маску наложить? Думаю пройдет такой вариант.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 31 2018, 18:19
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(sidy @ Aug 31 2018, 21:16) *
Маску наложить? Думаю пройдет такой вариант.

Настройки изучите в Referense Manual.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 04:03
Рейтинг@Mail.ru


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