Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


Redirecting printf() does not work

Hi,

I am new to STM32. After playing with the code generation from STM32cubeMX for SW4STM32, I am facing the same problem with printf. I am using a STM32F0 discovery board and the function HAL_UART_Transmit works perfectly. I added the following code to the main project and included the stdio.h header in order to use the printf function:

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif /* __GNUC__ */

PUTCHAR_PROTOTYPE
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);

  return ch;
}


Without success. However, when I call the function io_putchar directly, my terminal receives the string just fine.
I generated the same code to use in keil and it surprises me that the printf function works there without problems.

So I think there are some compiler options that I need to configure within SW4STM32. It would be very helpful if somebody can help me finding the solution.

Thanks in advance,

Hendrik