1:创建工程参考链接

2:将参考链接里面的fputc这一块代码进行更换;

int fputc(int c,FILE *f)
{
    uint8_t ch[1]={c};
    HAL_UART_Transmit(&huart1,ch,1,0xFFFF);
    return c;
}

改换成代码:

#include <stdio.h>
#include <sys/unistd.h>
#include <sys/stat.h>

/* USER CODE BEGIN 4 */
// 关闭标准输出缓冲,printf 立即生效

/* USER CODE BEGIN 4 */
int _write(int file, char *ptr, int len)
{
    HAL_UART_Transmit(&huart1, (uint8_t*)ptr, len, 100);
    return len;
}
/* USER CODE END 4 */

原因:VSCode + GCC 环境必须用 _write;fputc 是 Keil MDK(ARMCC 编译器)专用的 printf 重定向函数;_write 是 GCC(VSCode/CubeIDE 用)专用的 printf 重定向函数。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐