Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

stm32f4 cmsis usart +terminal1,9 b

Чт апр 15, 2021 20:33:49

Код:

у меня вопрос .Я пытаюсь вывести на терминал текст .А выводятся какие то 0<0> и козябрики.в халеЛЛ тоже самое.?Кто подскажет умную мыспь?

Добавлено after 36 minutes 14 seconds:
ии

Добавлено after 32 seconds:
Код:
Вложения
main.c
(39.04 KiB) Скачиваний: 265

Re: stm32f4 cmsis usart +terminal1,9 b

Чт апр 15, 2021 20:44:07

Ну и жесть! От этого кода глаза вытекают просто!!! Никакой культуры…
P.S. Если выводятся "козябрики", это означает, что тактирование неправильно настроено.

Re: stm32f4 cmsis usart +terminal1,9 b

Чт апр 15, 2021 22:25:11

И в кубе тоже?

Добавлено after 4 minutes 48 seconds:
Тактирование контроллера настроенно.Правильно или неправильно.Но I2C работает.Да я не программист.И культуры написания программы.Не научен.Да и На AVR тоже самое.

Добавлено after 28 minutes 26 seconds:
Может я не так понял.Тактирование контроллера? Или usart ?

Re: stm32f4 cmsis usart +terminal1,9 b

Сб апр 17, 2021 09:57:59

зациклите выдачу 0х55 в режиме 8n1 и замерьте частоту ( можете кратно снизить скорость передачи, чтоб однозначно оценить даже dso138тым). с учетом что 2 бита '10' это период частоты - это и будет скорость вашего уарта. Сами понимаете, что она должна быть равна выставленной в терминале.

Re: stm32f4 cmsis usart +terminal1,9 b

Сб апр 17, 2021 17:03:07

В int main(void) после RCC_init(); выполните следующий код
Код:
        RCC_ClocksTypeDef RCC_Clocks;
        RCC_GetClocksFreq (&RCC_Clocks);
покажите результат с отладчика структуры RCC_Clocks {...}

Re: stm32f4 cmsis usart +terminal1,9 b

Вс апр 18, 2021 19:24:39

Код:
В int main(void) после RCC_init(); выполните следующий код
Код:
        RCC_ClocksTypeDef RCC_Clocks;
        RCC_GetClocksFreq (&RCC_Clocks);
покажите результат с отладчика структуры RCC_Clocks {...}

на жто компелятор ругается

Добавлено after 7 minutes 22 seconds:
и это по моему в кубе.А в кубе тоже самое.

Re: stm32f4 cmsis usart +terminal1,9 b

Вс апр 18, 2021 22:05:42

ivan dimir писал(а):на жто компелятор ругается
Как ругается?
Проверьте что бы был подключен файл
Код:
#include <stm32f4xx_rcc.h>
У вас под сомнением
Код:
RCC_PLLCFGR_PLLP
AHB Prescaler
APB2 Prescaler
да и сомнительный разгон, думаю как раз с куба все бы и работало.

Давайте сюда данные регистров RCC->CFGR RCC->PLLCFGR до выполнения функции RCC_init() и после выполнения, и насколько кварц стоит? Сам посчитаю.

Либо делайте то что предложил a797945

Re: stm32f4 cmsis usart +terminal1,9 b

Пн апр 19, 2021 06:48:52

в кубе тоже самое.Козябрики .#include <stm32f4xx_rcc.h> этого файла нет.Он есть в кубе.Но в кубе я генерировал проект .Правда функция передачи на cmsis.AVR тоже козябрики?

Re: stm32f4 cmsis usart +terminal1,9 b

Пн апр 19, 2021 09:55:15

Попробуй так сделать:
в функции USART1_init() заинкрементировать строки
Код:
USART1->CR1     |= USART_CR1_RXNEIE;
NVIC_EnableIRQ (USART1_IRQn);
далее сверху функции int main(void) добавляем код
в функции int main(void) после USART1_init();
вставляем nast_uart();
подключаемся терминалом на скорости, к примеру 19200, и жмем резет на stm32f4,
функция последовательно будет перебирать регистр USART1->BRR, пока не получите адекватную информацию в терминале.

Re: stm32f4 cmsis usart +terminal1,9 b

Вс июл 25, 2021 15:22:14

Я настроил просто на резонатор 8Мгц работает.А включаю PLL и понеслись козябрики .Меня вот что интересует.Там на рисунке есть PLL и что такое R я не нашол

Re: stm32f4 cmsis usart +terminal1,9 b

Вс июл 25, 2021 18:56:42

Там на рисунке есть PLL и что такое R я не нашол

Найди. Без него никак.

Какой хоть у тебя МК?

Re: stm32f4 cmsis usart +terminal1,9 b

Вс июл 25, 2021 20:04:11

stm32f407

Добавлено after 6 minutes 52 seconds:
или это бит сброса.Но я его его в регистрах не вижу.

Re: stm32f4 cmsis usart +terminal1,9 b

Пн июл 26, 2021 09:00:42

Открой файл "system_stm32f4xx.c" и посмотри, что это за параметр.

Твой код крайне сложно читать, посмотри на примеры из тех же библиотек от СТМ. И не заметил у тебя настройку поля досчёта делителя частоты для УАРТ. Ниже фрагмент класса класса последовательного порта для F411, работающего под FreeRTOS.

Re: stm32f4 cmsis usart +terminal1,9 b

Пн июл 26, 2021 18:37:57

"Открой файл "system_stm32f4xx.c" и посмотри, что это за параметр." Что за параметр?.Я настраиваю просто на резонатор.И настраиваю скорость usart2 -работает.А настраиваю на PLL шину на скорость 168Мгц.Пшик

Re: stm32f4 cmsis usart +terminal1,9 b

Пн июл 26, 2021 19:03:40

ivan dimir писал(а):stm32f407
по ходу дела выбранный вами проц не вытягивает ваш код, то есть слабоват будет.
Может вам попробовать что нибудь из Cortex-R, а еще лучше Cortex-A? К примеру не плохой будет выбор ARM Cortex-A710.

Re: stm32f4 cmsis usart +terminal1,9 b

Вт июл 27, 2021 08:16:37

"Открой файл "system_stm32f4xx.c" и посмотри, что это за параметр." Что за параметр?.Я настраиваю просто на резонатор.И настраиваю скорость usart2 -работает.А настраиваю на PLL шину на скорость 168Мгц.Пшик

Судя по используемым терминам, ты не понимаешь, что тебе нужно делать. Разберись с устройством ФАПЧ, тогда станет понятно что тебе нужно настраивать и как рассчитать необходимые параметры.
Dimon456 писал(а):по ходу дела выбранный вами проц не вытягивает ваш код, то есть слабоват будет.

Я конечно понимаю, что тут грамотных людей меньше, чем хотелось бы, но такое первый раз встречаю. Ты если покурил или бухнул чего, то не следует сразу сюда выплёскивать отрыжку своего повреждённого мозга.

ТС, тебе для понимания: у 405/407 и 411 одинаковые УАРТы. И системы тактирования тоже одинаковые (не помню есть у 405/407 SAI или нет, но тебе это точно пока не понадобится). Намёк понятен? У меня на 411 работает текстовая консоль на 115200 и два Модбас на 115200, мастер и слэйв. Частота 411 у меня 96МГц.

Re: stm32f4 cmsis usart +terminal1,9 b

Вт июл 27, 2021 17:25:37

Судя по используемым терминам, ты не понимаешь, что тебе нужно делать. Разберись с устройством ФАПЧ, тогда станет понятно что тебе нужно настраивать и как рассчитать необходимые параметры.
Правильно устройство ФАПЧ,Я настроил по чужим примерам.А в USart нужно точная настройка.По поводу контроллера.Это писал такой же амматор как и я.В кубе я смотрел, похоже вот только чего то не хватает.Я поэтому и к вам обратился.Спецам.

Re: stm32f4 cmsis usart +terminal1,9 b

Вт июл 27, 2021 17:43:09

ivan dimir писал(а):Это писал такой же амматор как и я
у меня то ума хватит на это
a797945 писал(а):зациклите выдачу 0х55 в режиме 8n1 и замерьте частоту
либо это
Dimon456 писал(а):функция последовательно будет перебирать регистр USART1->BRR, пока не получите адекватную информацию в терминале.
а так же тупо нажать "паузу" в отладчике и выдернуть для анализа, после выполнения или разгона,
ivan dimir писал(а):А настраиваю на PLL шину на скорость 168Мгц.
содержимое регистров
Код:
RCC->CR
RCC->PLLCFGR

Re: stm32f4 cmsis usart +terminal1,9 b

Вт июл 27, 2021 17:54:58

Я выложил примеры настройки и тактирования, и УАРТ. Всё с комментариями, и даже на русском. Я не понимаю, что ещё нужно показать. Единственное, возможно, для консольного режима приём-передачу по одному символу. Читай комментарии и держи перед глазами описание SFR.

Re: stm32f4 cmsis usart +terminal1,9 b

Вт июл 27, 2021 20:16:25

tonyk писал(а):Читай комментарии и держи перед глазами описание SFR.

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

Извиняюсь, ошибся. У вас так:
Reg = (0<<Pos1)|(0<<Pos2);
Надо лишь помнить, что такой записью вы портите содержимое всех прочих битовых полей регистра Reg, что тоже нежелательно.
Последний раз редактировалось Professor Chaos Вт июл 27, 2021 22:59:34, всего редактировалось 1 раз.
Ответить