在usart.c最后增加重写_write函数就可以支持printf打印;
/**
* @brief redefine write
*
* @param file
* @param buf
* @param nbyte
* @return int
*/
__attribute__((weak)) int _write(int file, char *buf, int nbyte)
{
if (HAL_UART_Transmit(&huart2, buf, nbyte, 0xffff) != HAL_OK)
{
Error_Handler();
}
return 0;
}
printf支持float类型,stm32CubeIDE软件设置如下: