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

 
 
> STM32F051K8 передача данных с UART1 на UART2 и обратно, мост между UART-ами
Alla_student
сообщение Aug 13 2016, 07:18
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Здравствуй All!

Необходимо написать программную поддержку передачи данных между встроенными портами UART1 и UART2 STM32F051.

Алгоритм такой:
1. Прием данных с порта UART1 микроконтроллера, он подключен к PC, который всегда является мастером и запрашивает данные с устройства, которое подключено к порту UART2 микроконтроллера.
2. Загрузка принятых данных с UART1 в буфер1 256 байт, принятый пакет всегда меньше.
3. Передача данных из буфера1 в UART2.
4. Ожидание ответа внешнего устройства подключенного к UART2, и после получение данных в другой буфер2, то же 256 байт, иначе выход по таймауту 10 сек.
5. Передача данных из буфера2 в UART1 в сторону PC.

PS: Скорость передачи на портах UART1 и UART2 разная!

Я понимаю, что надо использовать прерывания, но запуталась с флагами, и пока ничего рабочего не получается. С DMA просто боюсь связываться.
В конференциях аналогичного ничего рабочего не нашла.
Буду признательна, если кто нибудь объяснит и даст пример рабочего кода для этой задачи.

С уважением. Вечный студент Алла.

Сообщение отредактировал Alla_student - Aug 14 2016, 05:34
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RabidRabbit
сообщение Aug 13 2016, 18:54
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 397
Регистрация: 3-12-09
Из: Россия, Москва
Пользователь №: 54 040



По-моему, с таким алгоритмом и прерываний не требуется, достаточно опроса флагов состояния UART sm.gif В документе RM0091 содержаться даже примеры по работе с UART, как настройка, так и передача/приём.

www.st.com/resource/en/reference_manual/dm00031936.pdf
Go to the top of the page
 
+Quote Post
Alla_student
сообщение Aug 14 2016, 05:32
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Цитата(RabidRabbit @ Aug 13 2016, 22:54) *
По-моему, с таким алгоритмом и прерываний не требуется, достаточно опроса флагов состояния UART sm.gif В документе RM0091 содержаться даже примеры по работе с UART, как настройка, так и передача/приём.

www.st.com/resource/en/reference_manual/dm00031936.pdf


Спасибо, читала этот документ, но мне сложно завести именно два UART-а, а в документе этого нет, надо расставить приоритеты - работа с флагами и буферами данных, здесь видимо для меня засада.
Да, и я спрашивала про реализацию алгоритма именно с двумя буферами выделенными в ОЗУ, или возможно реализацию FIFO с DMA или без. Это уже для меня "темный лес". Для чего это надо - я не указала, что скорость передачи данных на UART-ах разная. Поэтому уважаемый ALL! - Прошу привести примеры реализации этого алгоритма, если конечно не сложно, без примера я не разберусь, уже вторую неделю пытаюсь. Думаю и другим новичкам будет интересно.

PS: В интернете не одного рабочего примера моста между внутренними UART-ами с буферизацией не нашла, только тупо перекладыванием байта, что при кратковременной паузе в данных или при разных скоростях на портах, не будет работать.

Заранее спасибо за помощь!

Сообщение отредактировал Alla_student - Aug 14 2016, 05:39
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alla_student   STM32F051K8 передача данных с UART1 на UART2 и обратно   Aug 13 2016, 07:18
|- - toweroff   Цитата(RabidRabbit @ Aug 13 2016, 21:54) ...   Aug 13 2016, 20:26
||- - TSerg   Цитата(toweroff @ Aug 13 2016, 23:26) ну ...   Aug 13 2016, 20:29
- - adnega   Я бы сделал реализацию кольцевого FIFO-буфера. Соз...   Aug 14 2016, 06:55
- - x893   Алгоритм работы раскрыт не полностью. 1. Что проис...   Aug 14 2016, 08:35
|- - Alla_student   Цитата(x893 @ Aug 14 2016, 12:35) Алгорит...   Aug 14 2016, 15:30
|- - RabidRabbit   Цитата(Alla_student @ Aug 14 2016, 19:30)...   Aug 14 2016, 16:36
|- - adnega   Цитата(RabidRabbit @ Aug 14 2016, 19:36) ...   Aug 14 2016, 17:00
|- - Alla_student   Цитата(adnega @ Aug 14 2016, 21:00) Т.к. ...   Aug 14 2016, 20:33
|- - adnega   Цитата(Alla_student @ Aug 14 2016, 23:33)...   Aug 14 2016, 22:35
|- - Alla_student   Цитата(adnega @ Aug 15 2016, 01:35) Обычн...   Aug 16 2016, 06:32
|- - adnega   Цитата(Alla_student @ Aug 16 2016, 09:32)...   Aug 16 2016, 08:19
- - RabidRabbit   Цитата(adnega)Т.к. скорости разные, то предположим...   Aug 14 2016, 17:28
|- - adnega   Цитата(RabidRabbit @ Aug 14 2016, 20:28) ...   Aug 14 2016, 18:08
- - x893   Доктору без анализов трудно помочь больному. Так ж...   Aug 16 2016, 10:18


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

 


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


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