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()函数了。

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

相关推荐
-凌凌漆-4 分钟前
【嵌入式】FreeRTOS串口等待vTaskDelay()
嵌入式硬件
小昭在路上……38 分钟前
GPIO端口引脚(位域)打包技巧笔记
单片机·嵌入式硬件
是翔仔呐38 分钟前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
悠哉悠哉愿意44 分钟前
【单片机复习笔记】第十六届省赛复盘
笔记·单片机·嵌入式硬件
IT方大同1 小时前
RT_thread(RTOS实时操作系统)线程的创建与切换
c语言·开发语言·嵌入式硬件
是翔仔呐1 小时前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
沐欣工作室_lvyiyi2 小时前
基于单片机的智能浴室(论文+源码)
stm32·单片机·嵌入式硬件·智能浴室
二本咕咕-机械转码2 小时前
STM32是怎么跑起来的?启动流程 + 时钟树一次讲透(面试高频)
stm32·嵌入式硬件·面试
撩妹小狗2 小时前
揭秘舵机精准控制的PWM奥秘
单片机·嵌入式硬件
Heartache boy2 小时前
野火STM32_HAL库版课程笔记-TIM通道输出应用之PWM实现呼吸灯
笔记·stm32·单片机·嵌入式硬件