Если проект сделан правильно затягивается всё без проблем:
возьми с полки пирожок.
Нет никаких разных принципов подхода к задачам.
Всё гораздо проще (по отношению к stm32 в данном случае), есть задача, по быстренькому запустить проверить - > hal. Надо совместимость с несколькими разными сериям МК - > hal. Тупо написать сложное приложение не вникая в МК - > rtos.
Выжать максимум из МК - > cmsis. Т е работая самостоятельно с регистрами.
Это ты сейчас про программирование, а запустить новый процессор на старом CubeIDE? Где нет поддержки, это всё задачи девопсов
пришел 411 от WeAct, да, из CubeIDE прогружается прекрасно.
Не могу запустить отладку, вывести хоть какое то сообщение через PB3 (SWO), есть у кого толковая пошаговая инструкция - просьба поделиться.
P.S. Замучался ножки припаивать
такое ощущение что все контактные площадки лаком залиты, первый раз с Ali такое мучение получил.
Для использования SWO необходимо:
— активировать SWD ;
— включить соответствующий вывод (для микроконтроллеров STM32F103C это PB3) на TRACESWO ;
— убедиться, что в среде программирования включен именно SWO , а не semihosting ;
— в шапке программы подключить библиотеку #include «stdio.h» ;
— в коде программы использовать printf(«Hello STM32 world!\r\n») ;
уже думаю вдруг у меня PB3 криво припаян ![]()
все перепробовал - нет ничего
/* 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;
}
Спасибо!
Заработало!
![]()
И мне сегодня пришёл. Моргает. RE.
а это что?
у каждого своё…у меня под Арчёй пути на находит, под UBUNTU и компилируется и заливается без проблем…
Можно для пенсионеров разъяснить:
- Что это такое?
- Куды вставлять?
![]()
тока кратенько…
эту функцию использует printf и иже сними, переопределяя эту заглушку можно например в порт выводить все
int __io_putchar(int ch)
{
HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,10);
return ch;
}
выше ITM_SendChar(ch) шлет все в SWO выход.
вставлять в любой свой бегин/енд
учитывайте только. что она может вызываться в контексте прерывания, так что все подряд в нее пихать не надо





