LINUX.ORG.RU

USART vs UART

 


0

2

Могут ли pin’ы USART_TX/USART_RT работать как UART_TX/UART_RX? Наоборот явно нет. Ну а если мне нужен UART, а свободные выходы USART, могу ли я их ипользовать и если да, что дополнительно в них необходимо сконфигурировать?

Теоретически да, на практике нужно читать документацию твоего девайса, можно там или нет

Harald ★★★★★ ()

USART - Universal Synchronous/Asynchronous Receiver/Transmitter т.е. в зависимости от настроек должен реализовывать и синхронную и асинхронную приемопередачу.
читай тех.описание реализуется ли необходимый тебе режим/протокол.

pfg ★★★★★ ()
Последнее исправление: pfg (всего исправлений: 1)

О какой платформе собственно идет речь? Какой микроконтроллер? На некоторых МК это чуть ли не синонимы…

что дополнительно в них необходимо сконфигурировать

STM32? Дефолт-контроллеры теперь это stm32?

I-Love-Microsoft ★★★★★ ()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Processor STM32F407ZGT6

PCB STM32-H407: https://www.olimex.com/Products/ARM/ST/STM32-H407/open-source-hardware

У него просто мало pin’ов UART (всего два кажется), а USART аж пять. Мне тут напаяли «pin headers» (сам я паяльщик с двумя левыми руками), но больше у меня свободных pin’ов USART. А я хочу их использовать как UART. Что именно в datasheet смотреть?

Вот datasheet, refence manual, pinout:

dissident ★★ ()
Ответ на: комментарий от ilovewindows

Насколько я понял USART можно использовать как UART, только не знаю, нужны ли для этого какие-нибудь телодвижения.

dissident ★★ ()
Ответ на: комментарий от dissident

Биты в регистрах управления, что то типа этого делает на stm8 9600 по прерываниям, что есть что, короче надо вкуривать доки

UART2_CR2_REN=1; UART2_CR2_TEN=1; UART2_BRR2 = 0x03; UART2_BRR1 = 0x68; UART2_CR3_STOP=0; UART2_CR1=0; UART2_CR2_RIEN=1;

ну не умею форматировать и не собираюсь

ilovewindows ★★★★★ ()
Последнее исправление: ilovewindows (всего исправлений: 1)
Ответ на: комментарий от ilovewindows

То я сформатирую

UART2_CR2_REN=1;
UART2_CR2_TEN=1;
UART2_BRR2 = 0x03;
UART2_BRR1 = 0x68;
UART2_CR3_STOP=0;
UART2_CR1=0;
UART2_CR2_RIEN=1;

Проблема только в том, что я ничего не понял. Мне надо UART. А свободные pin’ы с припаянными pin headers есть от USART. Какие манимуляции в коде мне надо сделать, что UЫART pin’ы использовать как UART pin’ы. Вот это UARTn-BRRn соответствующие выставить?

dissident ★★ ()
Последнее исправление: dissident (всего исправлений: 1)
Ответ на: комментарий от dissident

Синхронный режим включается битом в регистре и задействуется дополнительная линия ввода-вывода, просто забудь про него пока не понадобится, здесь вроде нормально написано http://dimoon.ru/obuchalka/stm32f1/programmirovanie-stm32-chast-16-usart.html

ilovewindows ★★★★★ ()
Ответ на: комментарий от ilovewindows

Спасибо. Не отмечаю, как решенную, поскольку еще толком не взялся, возьмусь во вторник, тогда проверю. Так или иначе огромное спасибо. В Интернете трудно найти информацию как это переключать.

dissident ★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей