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


You are viewing a reply to Retargeting getchar() function  

Retargeting getchar() function

Here my non blocking getchar. You need to clear the overflow otherwise the rx available will not rise again

x
 
bool getchar(uint8_t * ch)
{
       // check for overflow and clear
    if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_ORE))
        __HAL_UART_CLEAR_FLAG(&huart1, UART_FLAG_ORE);
    if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_RXNE))
    {
        *ch = huart1.Instance->RDR & 0x1FF;
        return true;
    }
    return false;
}


And to make printf work in blocking mode:

xxxxxxxxxx
 
void _write(int file, char *ptr, int len)
{
        HAL_UART_Transmit(&huart1, (uint8_t*) ptr, len, 10);
}