ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

STM32 Cmake平台上对print进行串口重定向的方法

2026/8/10 11:37:17 拓冰建站 浏览量
STM32 Cmake平台上对print进行串口重定向的方法

从keil转移到cmake上的朋友可能还不知道怎么进行串口重定向

因为不是keil有自带microlib库,没法继续套用。

我将通过下面的示例告诉大家,并避免踩到一些已有的坑。

cmake框架由cubemx生成,如有提到路径就是生成目录下的

int _write(int fd, char *ptr, int len)  
{  HAL_UART_Transmit(&uart_handle, (uint8_t*)ptr, len, 0xFFFF);return len;
}

通过这个输出函数就能实现串口打印,但还有一些是要注意的:

  • printf的内容后面要跟上\r\n,不然串口打印不显示,最好是后面单独给出一行
    printf("hello,world");
    printf(\r\n);
    
  • 默认不能输出浮点数,因为编译器选项没有开启,在路径cmake/gcc-arm-none-eabi.cmake里配置
    -u _printf_float(添加这个编译选项)
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fdata-sections -ffunction-sections -u _printf_float")