I_am_Lexx 0 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба Подскажите, как перенастроить UART в STM32. У меня товарищ делает перенастройку UART в STM32 при помощи каких-то готовых функций(я STM не программирую). Результатом является то, что при перенастройке модуль UART выключается и включается снова. В то время, когда UART выключается, "отпускается" линия RX и TX. Напряжение там просаживается на небольшое время. Товарищ говорит, что по другому нельзя. На PIC я делаю перенастройку UART без выключения модуля. Эффекта "отпускания" линии нет. Можно ли в STM32 перенастроить UART без выключения модуля? Если можно, то лучше код или ссылку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба Что именно Вам надо перенастроить? И слово "нельзя" - это про идеологию. Если там идеология "использовать можно только HAL", то, боюсь, никакой готовый код товарищу не поможет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
I_am_Lexx 0 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба Используется не HAL, а библиотека стандартной периферии. "Нельзя" - это не идеология, а просто не получается. Перенастройка модуля UART для того, чтобы TX UART работал через DMA или без DMA. Связаны ли эти настройки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба 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; всё! Без "просадок". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба Включить-выключить прерывания в USARTx->CRx можно прямо на ходу (сам так делаю постоянно). Поставить бит DMAT в USARTx->CR3, подозреваю, тоже можно (не проверял). Проинициализировать DMA можно один раз, дальше просто запускать в нужный момент. Но в SPL всего этого нету, разумеется. Но это руками можно и нужно сделать, получится меньше и понятнее, чем волшебные SPL-функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
I_am_Lexx 0 20 декабря, 2018 Опубликовано 20 декабря, 2018 · Жалоба Спасибо за советы, попробуем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
leocat 0 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба On 12/20/2018 at 4:47 PM, esaulenka said: Но в SPL всего этого нету, разумеется. Но это руками можно и нужно сделать, получится меньше и понятнее, чем волшебные SPL-функции. Давно придумали? Почитать букварь по SPL религия не позволяет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SSerge 6 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 3 часа назад, leocat сказал: Давно придумали? Почитать букварь по SPL религия не позволяет? Так нет же никакого букваря по SPL и теперь уже не будет, только комиксы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
leocat 0 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 83 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 1 час назад, leocat сказал: Драсьте... состояние SPL - поддерживается 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 Поддерживается, но не развивается. Документ 2012 года. 1 час назад, leocat сказал: Нет версий для "жирных" камней типа 7хх, то там удобнее КАЛ, ибо и ПЗУ и ОЗУ большого размера. Не потому что жирные, а потому что HAL это развитие SPL с учетом ошибок, он лучше структурирован, учитывает существование OS, и он развивается. А SPL заморожен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
leocat 0 4 января, 2019 Опубликовано 4 января, 2019 · Жалоба 40 minutes ago, HardEgor said: Не потому что жирные, а потому что HAL это развитие SPL с учетом ошибок, он лучше структурирован, учитывает существование OS, и он развивается. А SPL заморожен. КАЛ - развитие SPL?! Шутите? С натягом "развитием" SPL можно назвать LL. Но там тоже свои "тараканы". Процентов 30 кода нужно писать с использованием CMSIS. И опять таки библиотеки типа USB только на КАЛе... Есть даже программа миграции (трансляции) с SPL на LL. Но "дотачивать" приходится неслабо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться