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

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

相关推荐
【云轩】8 小时前
从零开始用STM32驱动DRV8301:无人机/机器人电机控制指南
stm32·机器人·无人机
【云轩】11 小时前
【零基础实战】STM32控制DRV8833电机驱动详解
stm32·单片机·嵌入式硬件
RFID舜识物联网12 小时前
RFID测温技术:电力设备安全监测的新利器
网络·人工智能·嵌入式硬件·物联网·安全
朝颜_祝余13 小时前
模电知识点总结(4)
单片机·嵌入式硬件
日记成书14 小时前
详细介绍STM32(32位单片机)外设应用
stm32·学习
¥ 多多¥14 小时前
单片机总结【GPIO/TIM/IIC/SPI/UART】
单片机·嵌入式硬件
1101 110114 小时前
STM32-智能台灯项目
stm32·单片机·嵌入式硬件
苏慕TRYACE15 小时前
RT-Thread+STM32L475VET6——icm20608传感器
stm32·单片机·嵌入式硬件·rt_thread
CHANG_THE_WORLD15 小时前
Windows获取字体文件
windows·stm32·单片机
橘猫0.o15 小时前
【STM32】内存管理
stm32·单片机·嵌入式硬件