STM32CubeIDE生成工程添加printf打印(uart1)

背景:

    使用STM32CubeIDE可以很方便的生产驱动代码,工程可直接编译下载,默认配置uart1后不能使用标准输出printf进行打印,需要自行添加支持。

方法:

    使用STM32CubeIDE选择uart1,配置好后生成工程代码 将如下代码添加到usart.c(MX中需要勾选每个外设生成独立文件功能)文件中
#include "stdio.h"

#ifdef __GNUC__

#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

PUTCHAR_PROTOTYPE
{
          
   
	HAL_UART_Transmit(&huart1, (uint8_t*)&ch, 1, HAL_MAX_DELAY);
	return ch;
}
#endif
    main函数中调用printf函数进行打印测试(此时不能用于打印浮点数)

浮点数支持:

依次打开下面配置页面:
    Project Properties C/C++ Build > Settings Tool Settings MCU Settings
勾选下面选项
    Use float with printf from newlib-nano (-u printf_float) Use float with scanf from newlib-nano (-u scanf_float) 输出只勾选第一项即可 输入勾选第二项
经验分享 程序员 微信小程序 职场和发展