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

 
 
> STM32 UART RTS/CTS Cube, Как "остановить" прием
eu1cc
сообщение Jul 8 2016, 10:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 24-10-10
Из: Minsk
Пользователь №: 60 382



День добрый всем.
STM32F103, используется UART2. Прием идет в прерывании. Линии rts/cts используются. При поступлении данных, заполняется буфер (64 байта), после этого выставляется флаг, и в основоной программе выполняется анализ буфера.
Как на это время остановить прием? Запретить прерывание от UART?, или есть какое-то другое, более красивое решение?
Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
winniethepooh
сообщение Jul 8 2016, 11:11
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 3-06-15
Пользователь №: 86 995



прерывание не нужно останавливать т.к. оно не произойдет (буфер полон, сигнал cts активен, передатчик должен это увидеть и прекратить передачу), но
прежде чем это произойдет, от уже успеет бросить приготовленные данные приемнику и решение кажется таким, что размер буфера должен быть равен или превышать размер переданного блока иначе потеря данных.
т.е. я хочу сказать что ваш буфер должен быть больше чем вы ожидаете принять на размер данных передаваемый за один раз иначе приемник не успеет сигнализировать cts
получается буфер заполнен- сигнал начать обработку данных и запретить копирование из фифо, очистили буфер продолжили копирование из фифо (если вы его используете, если нет то это регистр rdr)

Цитата(eu1cc @ Jul 8 2016, 11:02) *
т.е. надо не запрещать прерывание, а переводить CTS в "1"? А как это программно делается?

из даташита я понял, что cts по заполнению фифо ли rdr встает автоматом.

Сообщение отредактировал winniethepooh - Jul 8 2016, 12:31
Go to the top of the page
 
+Quote Post



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

 


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


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