Если проект сделан правильно затягивается всё без проблем:
возьми с полки пирожок.
Нет никаких разных принципов подхода к задачам.
Всё гораздо проще (по отношению к 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 выход.
вставлять в любой свой бегин/енд
учитывайте только. что она может вызываться в контексте прерывания, так что все подряд в нее пихать не надо





