STM32CubeIDE关于printf()串口输出重定向的问题

一、问题描述

之前一直使用CubeMX搭配MDK-Keil5生成代码,在用到串口时,需要用到printf()输出重定向到PC的串口调试助手,Keil5通过点击"魔法棒"可以选择使用MicroLIB来加载stdio.h标准输入输出库。

笔者后来自学FreeRTOS,选择用CubeIDE来生成代码,但是CubeIDE没有MicroLIB可以选,经过上网各种检索后得知,CubeIDE有自动配置了该项选择,所以只需要自定义函数printf()输出重定向即可。据此,笔者自己实现了如下所示的printf()输出重定向:

但在调试过程中,并没有按照预期将数据打印到串口调试助手上,随后又进行了检索,成功实现打印,在此感谢大佬分享的方法,链接如下:

stm32cubeide使用printf函数打印数据_stm32cube printf-CSDN博客

二、方法

在main.c重写这个函数。

syscalls.c 文件通常与新的libc(C标准库)实现中的系统调用(syscalls)有关,特别是在裸机(bare-metal)或RTOS(实时操作系统)环境中,当标准库函数需要底层操作系统支持但操作系统环境不完整或不存在时。
int __io_putchar(int ch)

{

HAL_UART_Transmit(&huart1,(uint8_t *) &ch, 1, 1000);

return ch;

}

头文件添加:#include "stdio.h " ,在就可以使用printf()函数了。

如果有打印中文的需求,看看刚刚那位博主的文章就可以啦~

相关推荐
xduryan3 小时前
16.1 - VDMA视频转发实验之TPG
嵌入式硬件
逼子格6 小时前
硬件工程师笔记——二极管Multisim电路仿真实验汇总
笔记·嵌入式硬件·硬件工程师·multisim·硬件工程师学习·电子器件·电路图
「QT(C++)开发工程师」6 小时前
STM32 | FreeRTOS 递归信号量
python·stm32·嵌入式硬件
芯眼7 小时前
ALIENTEK精英STM32F103开发板 实验0测试程序详解
开发语言·c++·stm32·单片机·嵌入式硬件·社交电子
百里东风7 小时前
STM32IIC协议基础及Cube配置
stm32·单片机·嵌入式硬件
2301_800399728 小时前
stm32 DMA
stm32·单片机·嵌入式硬件
一只川页13 小时前
arduino平台读取鼠标光电传感器
驱动开发·单片机·嵌入式硬件·计算机外设
qq_4017004114 小时前
电容触摸按键PCB设计
stm32
爱学习的张哥15 小时前
UDP--DDR--SFP,FPGA实现之模块梳理及AXI读写DDR读写上板测试
单片机·fpga开发·udp·axi·ddr
LaoZhangGong12315 小时前
W5500使用ioLibrary库创建TCP客户端
网络·经验分享·stm32·网络协议·tcp/ip