STM32CubeIDE用printf打印中文

首先在 usart.c 文件里加上重定义部分代码,我用的是串口3所以为huart3

/* USER CODE BEGIN 0 */

#include “stdio.h”

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

PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart3, (uint8_t*)&ch,1,HAL_MAX_DELAY);
return ch;
}

/* USER CODE END 0 */

加进去后打印中文会乱码,则需要修改编码方式,鼠标点击项目按下右键,然后选择Properties(属性),然后进行如下修改:
STM32CubeIDE用printf打印中文
如果在下拉列表里找不到 GBK,可以直接键盘输入。