Перейти к содержанию
    

STM32. Перенастройка UART.

Подскажите, как перенастроить UART в STM32.

У меня товарищ делает перенастройку UART в STM32 при помощи каких-то готовых функций(я STM не программирую). Результатом является то, что при перенастройке модуль UART выключается и включается снова. В то время, когда UART выключается, "отпускается" линия RX и TX. Напряжение там просаживается на небольшое время. Товарищ говорит, что по другому нельзя.

На PIC я делаю перенастройку UART без выключения модуля. Эффекта "отпускания" линии нет.

Можно ли в STM32 перенастроить UART без выключения модуля? Если можно, то лучше код или ссылку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что именно Вам надо перенастроить?

 

И слово "нельзя" - это про идеологию. Если там идеология "использовать можно только HAL", то, боюсь, никакой готовый код товарищу не поможет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Используется не HAL, а библиотека стандартной периферии.

"Нельзя" - это не идеология, а просто не получается.

Перенастройка модуля UART для того, чтобы TX UART работал через DMA или без DMA. Связаны ли эти настройки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

55 минут назад, I_am_Lexx сказал:

У меня товарищ делает перенастройку UART в STM32 при помощи каких-то готовых функций(я STM не программирую). Результатом является то, что при перенастройке модуль UART выключается и включается снова. В то время, когда UART выключается, "отпускается" линия RX и TX. Напряжение там просаживается на небольшое время. Товарищ говорит, что по другому нельзя.

Товарищу посоветуйте читать мануал. Если нужно переконфигурить UART без "отпускания" TX, то это делается элементарно:

1) дожидаемся опустошения регистра сдвига TX-UART;

2) устанавливаем требуемое значение для режима GPIO пина TX ("0" или "1" - смотря какое используется пассивное состояние TX-пина UART);

3) переключаем TX в режим GPIO;

4) переконфигурим UART;

5) переключаем TX в режим UART;

всё! Без "просадок".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Включить-выключить прерывания в USARTx->CRx можно прямо на ходу (сам так делаю постоянно).

Поставить бит DMAT в USARTx->CR3, подозреваю, тоже можно (не проверял).

Проинициализировать DMA можно один раз, дальше просто запускать в нужный момент.

 

Но в SPL всего этого нету, разумеется. Но это руками можно и нужно сделать, получится меньше и понятнее, чем волшебные SPL-функции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/20/2018 at 4:47 PM, esaulenka said:

Но в SPL всего этого нету, разумеется. Но это руками можно и нужно сделать, получится меньше и понятнее, чем волшебные SPL-функции.

Давно придумали? Почитать букварь по SPL религия не позволяет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, leocat сказал:

Давно придумали? Почитать букварь по SPL религия не позволяет?

Так нет же никакого букваря по SPL и теперь уже не будет, только комиксы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, SSerge said:

Так нет же никакого букваря по SPL и теперь уже не будет, только комиксы.

Драсьте... состояние SPL - поддерживается. Нет версий для "жирных" камней типа 7хх, то там удобнее КАЛ, ибо и ПЗУ и ОЗУ большого размера.

Не рылся сильно, под рукой описание SPL для 303-го

https://www.st.com/content/ccc/resource/technical/document/user_manual/d1/02/f0/b6/1a/8a/43/de/DM00068049.pdf/files/DM00068049.pdf/jcr:content/translations/en.DM00068049.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, leocat сказал:

Поддерживается, но не развивается. Документ 2012 года.

1 час назад, leocat сказал:

 Нет версий для "жирных" камней типа 7хх, то там удобнее КАЛ, ибо и ПЗУ и ОЗУ большого размера.

Не потому что жирные, а потому что HAL это развитие SPL с учетом ошибок, он лучше структурирован, учитывает существование OS, и он развивается. А SPL заморожен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, HardEgor said:

Не потому что жирные, а потому что HAL это развитие SPL с учетом ошибок, он лучше структурирован, учитывает существование OS, и он развивается. А SPL заморожен.

КАЛ - развитие SPL?! Шутите? С натягом "развитием" SPL можно назвать LL. Но там тоже свои "тараканы". Процентов 30 кода нужно писать с использованием CMSIS. И опять таки библиотеки типа USB только на КАЛе...

Есть даже программа миграции (трансляции) с SPL на LL. Но "дотачивать" приходится неслабо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...