Например TDA7294

Форум РадиоКот • Просмотр темы - stm32f4 cmsis usart +terminal1,9 b
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт мар 29, 2024 01:18:45

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 28 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Вт июл 27, 2021 22:18:43 
Мучитель микросхем

Карма: -8
Рейтинг сообщений: -23
Зарегистрирован: Вс дек 29, 2019 08:05:21
Сообщений: 440
Рейтинг сообщения: 0
Лёд тронулся.Правда на stm32f103.

Добавлено after 7 minutes 9 seconds:
У меня единственное.Не получается строку отправить.Проблема была в прерывании системного таймера.А вторая проблемаMODIFY_REG(USART1->CR1,
USART_CR1_M | USART_CR1_PCE | USART_CR1_PS ,USART_CR1_TE |USART_CR1_RE); в этой строке а вернее с запятой.Если её убрать
MODIFY_REG(USART1->CR1,
USART_CR1_M | USART_CR1_PCE | USART_CR1_PS |USART_CR1_TE |USART_CR1_RE);-так не работает.А как же мне строку отправить?


Вложения:
main.c [17.72 KiB]
Скачиваний: 127
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Ср июл 28, 2021 07:05:59 
Электрический кот

Карма: -4
Рейтинг сообщений: 70
Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1040
Рейтинг сообщения: 0
Professor Chaos писал(а):
Извиняюсь, ошибся. У вас так:
Reg = (0<<Pos1)|(0<<Pos2);
Надо лишь помнить, что такой записью вы портите содержимое всех прочих битовых полей регистра Reg, что тоже нежелательно.

Цитата:
"Шарик! Ты- балбес! (с) Кот Матроскин"


Ты про это?
Цитата:
Код:
ComPort UART_base::open
(
    ComPort     _port,
    uint32      _baudRate,
    uint8       _dataBits,
    Parity      _parity,
    StopBits    _stopBits
)
{

   // Сбросим все конфигурационные биты. По ходу разбора параметров будем
    // выставлять нужные.
    usart -> CR1 = \
    usart -> CR2 = \
    usart -> CR3 = 0;

.......

    usart -> SR = 0;
    setEvents();   // Разрешаем нужные нам прерывания.
.......
    return( port );
}

///////////////////////////////////////

void
ConIO::setEvents( void )
{
    // Сначала сбросим биты событий.
    //usart -> ISR  = 0;

    usart -> CR1 =
    (
        // Запрос прерывания в следующих случаях:

        0 << USART_CR1_TCIE_Pos     |   // - по установке бита TC регистра SR,
                                        // т.е. при окончании передачи;

        0 << USART_CR1_TXEIE_Pos    |   // - по установке бита TXE регистра SR,
                                        // т.е. при начале передачи;
        0 << USART_CR1_RXNEIE_Pos   |   // - что-то пришло в УАРТ.

        // Не забываем включить сам модуль и выводы:

        1 << USART_CR1_TE_Pos       |   // - включаем передатчик;
        1 << USART_CR1_RE_Pos       |   // - включаем приёмник;
        1 << USART_CR1_UE_Pos           // - включение USART.
    );
   
    // Разрешаем приём, передачу, устанавливаем обработчики прерываний,
    // включаем тактирование.

    installInterruptHandler( usart_IRQn );
}

Я их не просто порчу, а устанавливаю в нужные мне значения!
Цитата:
Reg |= (0<<Pos1)|(0<<Pos2);
Для чего вы это пишите? Проговорите словами, что вы хотите сделать такой строкой.

Зачем словами? Я говорю в данном случае на языке программирования. И говорю я, что не забыл про эти биты, более того, мне нужно, чтобы в этой точке программы они были равны нулю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Ср июл 28, 2021 08:31:47 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
ivan dimir писал(а):
Лёд тронулся.Правда на stm32f103.
Ну вот, F4 не тянет, а F103 потянул.
ivan dimir писал(а):
А как же мне строку отправить?
Способов много, от printf до всяких там xprintf.
Как вариант, самодельный


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Ср июл 28, 2021 18:10:45 
Мучитель микросхем

Карма: 4
Рейтинг сообщений: 80
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Сообщений: 445
Откуда: 69.Ржев
Рейтинг сообщения: 0
операцией ИЛИ "0" 1-цу не погасит, но при просто присвоении "1" и нет. Получается запись просто на память

Парамеиры в функцию передаются через запятую. Сколько параметров нужно MODIFY_REG(.......) ? как можно убрать запятую? проверяйте что вы хотите от регистра


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Чт июл 29, 2021 17:46:39 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1146
Рейтинг сообщения: 0
Я выложил примеры настройки и тактирования, и УАРТ.
usart->SR &= ~USART_SR_TXE;

Так делать нельзя! Читайте описание регистра SR.
Правильная запись для сброса бита TXE: usart->SR = ~USART_SR_TXE;
Ваша запись, кроме того что не неоптимальна, так ещё и может сбрасывать другие случайные флаги.

Да и вообще смысл этого участка неясен... Видимо записали символ в буфер передачи теперь хотите чтобы вызвалось прерывание передачи (TXEIE)?
Но зачем-то перед его его разрешением пытаетесь сбрасывать флаг TXE. :facepalm:
Т.е. - если буфер передатчика был уже пуст к этому моменту, то флаг TXE стоял. Вы его принудительно сбросили и только потом разрешили прерывание TXEIE. Ну так оно никогда и не сработает, так как TXE принудительно сброшен.

Вообще флаги в регистре SR редко когда нужно принудительно сбрасывать. Они сбрасываются сами при определённых событиях (TXE - при записи символа в регистр передатчика).


Последний раз редактировалось jcxz Чт июл 29, 2021 18:06:04, всего редактировалось 2 раз(а).

Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Чт июл 29, 2021 17:55:36 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
jcxz, ну что за бред? Бит TXE - read only! Сбрасывается он, если в DR что-то будет записано...

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Чт июл 29, 2021 18:04:46 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1146
Рейтинг сообщения: 0
jcxz, ну что за бред? Бит TXE - read only! Сбрасывается он, если в DR что-то будет записано...
Бред был в исходном коде (сброс TXE) в посте, на который я отвечал.
Если TXE - read only, то та строка вообще бессмысленна.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: stm32f4 cmsis usart +terminal1,9 b
СообщениеДобавлено: Чт июл 29, 2021 18:07:42 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
Да там вообще много чего бессмысленного. И читать такой код страшно.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 28 ]    , 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y