STM32CubeIDE (вопросы и ответы)

Если проект сделан правильно затягивается всё без проблем:

возьми с полки пирожок.

1 лайк

Нет никаких разных принципов подхода к задачам.
Всё гораздо проще (по отношению к stm32 в данном случае), есть задача, по быстренькому запустить проверить - > hal. Надо совместимость с несколькими разными сериям МК - > hal. Тупо написать сложное приложение не вникая в МК - > rtos.
Выжать максимум из МК - > cmsis. Т е работая самостоятельно с регистрами.

Это ты сейчас про программирование, а запустить новый процессор на старом CubeIDE? Где нет поддержки, это всё задачи девопсов

еще и это надо:

Спойлер

GitHub - STMicroelectronics/stm32h573i-discovery-bsp at 7044586f37037ee3aa08241f2a89abc99c78ed52
GitHub - STMicroelectronics/stm32h5xx-nucleo-bsp at df8fb965417f8cfa2b8873c818ce5525287f01e1

пришел 411 от WeAct, да, из CubeIDE прогружается прекрасно.

Не могу запустить отладку, вывести хоть какое то сообщение через PB3 (SWO), есть у кого толковая пошаговая инструкция - просьба поделиться.

P.S. Замучался ножки припаивать :frowning: такое ощущение что все контактные площадки лаком залиты, первый раз с Ali такое мучение получил.

1 лайк

это есть?

Для использования SWO необходимо:

— активировать SWD ;
— включить соответствующий вывод (для микроконтроллеров STM32F103C это PB3) на TRACESWO ;
— убедиться, что в среде программирования включен именно SWO , а не semihosting ;
— в шапке программы подключить библиотеку #include «stdio.h» ;
— в коде программы использовать printf(«Hello STM32 world!\r\n») ;

1 лайк

уже думаю вдруг у меня PB3 криво припаян :frowning:
все перепробовал - нет ничего


  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

	static char counter = 0;
    printf("counter = %d\n", counter++);
    unsigned long delay = 10000000UL;
    while(delay){ delay--; }
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);

  }
  /* USER CODE END 3 */
}

ептать…
секунду..
показали друг другу картинки, а вывод то не зеленый!!!

сделал, эффекта нет, светодиод моргает, сообщений не вижу (

я надеюсь это ты тоже сделал?

int __io_putchar(int ch)
{
  ITM_SendChar(ch);
  return ch;
}

Спасибо!

Заработало!
:+1:

И мне сегодня пришёл. Моргает. RE.

а это что?

у каждого своё…у меня под Арчёй пути на находит, под UBUNTU и компилируется и заливается без проблем…

Можно для пенсионеров разъяснить:

  1. Что это такое?
  2. Куды вставлять?

:slight_smile:

тока кратенько…
эту функцию использует printf и иже сними, переопределяя эту заглушку можно например в порт выводить все

int __io_putchar(int ch)
 {
    HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,10);
    return ch;
 }

выше ITM_SendChar(ch) шлет все в SWO выход.
вставлять в любой свой бегин/енд

1 лайк

учитывайте только. что она может вызываться в контексте прерывания, так что все подряд в нее пихать не надо