Size: a a a

2021 May 27

Аa

Андрей a.k.a RedCat(... in STM32
Да по идее всегда, это же тики камня
источник

s

stD in STM32
Вы HAL используете?
источник

Аa

Андрей a.k.a RedCat(... in STM32
А тут дебагер нужен, предполагаю что проблема в том что систик тикает всегда, а инициализируете Вы юарт не сразу, но это только предположение🤷‍♂
источник

МД

Михайлов Данил... in STM32
/* USER CODE BEGIN SysTick_IRQn 0 */


 /* USER CODE END SysTick_IRQn 0 */
 HAL_IncTick();
 /* USER CODE BEGIN SysTick_IRQn 1 */


   char str[120] = {0,};
   snprintf(str, 120, "Fr1: %.3f Hz | Fr2: %.3f Hz | cm: %d | s:%d | u:%d | e:%d | \n ", (float)freq1_send,(float)freq2_send, count3_main_send, sostoyanie, upravlenie, equalfreq);
   HAL_UART_Transmit(&huart1, (uint8_t*)str, strlen(str), 100);
   count5 = 0;

   /* USER CODE END SysTick_IRQn 1 */
}

а с переменными делаю так:
/* External variables --------------------------------------------------------*/
extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim3;
extern UART_HandleTypeDef huart1;
extern TIM_HandleTypeDef htim1;
volatile uint8_t count5 = 0;
extern float freq1;
extern float freq2;
extern float freq1_send;
extern float freq2_send;
extern volatile uint16_t count3_main_send;
extern int sostoyanie;
extern int upravlenie;
extern int equalfreq;
источник

МД

Михайлов Данил... in STM32
Делаю так, только со счетчиком на секунду
источник

s

stD in STM32
У вас этот обработчик вызывается каждую миллисекунду, а вы туда спринтф да ещё и вывод в УАРТ.
источник

Аa

Андрей a.k.a RedCat(... in STM32
А где счётчик на секунду?
источник

МД

Михайлов Данил... in STM32
Исправил сообщение, но в коде так и было
источник

AP

Anatoly Politsin in STM32
добрый день! такой вопрос:

а что принято использовать для работы через wifi+mqtt в случае использования stm32 контроллеров? Нужно отправлять полтора значения телематики и принимать команду дёргать ногой.

В случае с ардуино+esp8266 или esp32+idf там есть "бери эту либу и вперёд". А что делать если у меня stm32? Ставить рядом esp и на него выносить всю работу с сетью и общаться с ним по uart? или stm32 вообще делать просто i2c слейв устройством и всю бизнес логику держать на esp32?
источник

AP

Anatoly Politsin in STM32
для wifi+mqtt какие самые главные альтернативы за пределами esp32?

или конкурентов нет совсем, всё писать самому с нуля и за большие деньги?
источник

DP

Dmitry Petrov in STM32
Если для себя и сам то можешь сэкономить
источник

ЮБ

Юрий Бичун in STM32
Проверить скорость нарастания питания
источник

ЮБ

Юрий Бичун in STM32
Или увеличить ёмкость на ресете
источник

ГК

Геннадий Ковалёв... in STM32
Подскажите пожалуйста, где у меня косяк с remap.

Значит настроил UART на пару ног, всё хорошо. Потом решил "свободу попугаям" и хочу одну из ног просто перевести в GPIO Input. Сделал  LL_USART_Disable(), затем уже ради эксперимента пишу напрямую в регистры, ставлю в нужные биты: MODER=0b00, PUPDR=0b01 (pull-up). На ноге падает уровень до 0 и не поднимается, pull-up нету. Проверил на соседней ноге c с этими же значениями, там до 1 поднимается. Pull-up работает. Хочу, чтобы на ноге бывшего uart, тоже pull-up было. Что мне ещё надо установить?
источник
2021 May 28

ДП

Дмитрий Пилипенко... in STM32
Использую в проекте FreeRtos (stm32f401)
В те моменты где идёт общение по UART то в какой-то момент всё виснет на мертво.
Добавил в функции с вызовом taskENTER_CRITICAL(); и taskEXIT_CRITICAL(); всё заработало.
Является ли это костылём или так и что надо в таких ситуациях делать?
Но мне кажется что если прерывается UART и далее продолжается работа, то виснуть ничего не должно, максимум будут ошибки передачи не то получу
источник

Б

Бармалей in STM32
А в обработчике прерывания uart какие нибудь сервис FREERTOS используете? Если да, то они должны быть предназначены для работы внутри исключений.
источник

ДП

Дмитрий Пилипенко... in STM32
Ничего другого не использую. Специально создавал чистый проект для поиска проблемы
источник

Б

Бармалей in STM32
Эм... Тогда как настроен NVIC? Субприоритетность должна быть отключена, на приоритеты должно быть отведено 4 бита. Сам недавно напоролся на этот нюанс
источник

Б

Бармалей in STM32
Вот что написано в мануале на ос:
If you are using an STM32 with the STM32 driver library then ensure all the priority bits are assigned to be preempt priority bits by calling NVIC_PriorityGroupConfig( NVIC_PriorityGroup_4 ); before the RTOS is started.
источник

И

Игорь in STM32
ну только если это будет отправка с помощью DMA
источник