用VScode+CubeMX进行串口打印

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 重定向函数。

相关推荐
KaifuZeng20 分钟前
电源面试问题汇总一
单片机·嵌入式硬件·面试·电路
驱动探索者2 小时前
RISC-V PLIC 深度解析:从 Spec 到 Zephyr 驱动实现
单片机·嵌入式硬件·中断控制器
LCG元3 小时前
STM32 FreeRTOS 实战:任务调度 + 互斥锁 + 消息队列 + 串口命令解析器
stm32·单片机·嵌入式硬件
Hello_Damon_Nikola3 小时前
姿态式饮水量估算从原理到实战
嵌入式硬件
LCG元3 小时前
STM32 SPI Flash 读写实战:W25Q64 驱动 + FatFS 文件系统移植 + 日志存储系统
stm32·单片机·嵌入式硬件
不想学习!!4 小时前
【STM32 基础复习 01】初识 STM32F103ZET6:型号、封装、引脚编号与特殊引脚
stm32·单片机·嵌入式硬件
wuyk5554 小时前
66.嵌入式C语言进阶:共用体(Union)实战指南——单片机内存省一半的神级技巧
c语言·开发语言·stm32·单片机·嵌入式硬件
ACP广源盛139246256736 小时前
此芯 P1 AI BOX / AI NAS@ACP#IX8008、IX8024 应用场景与市场机会
大数据·人工智能·分布式·单片机·嵌入式硬件
广药门徒12 小时前
虚拟机联网20260725
嵌入式硬件
国产化创客13 小时前
Kindle 嵌入式交叉开发环境
嵌入式硬件·智能硬件