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

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

相关推荐
ACP广源盛1392462567321 分钟前
GSV5100B@ACP#一种具有音频提取和插入功能的 2 进 2 出 HDMI2.0 中继器 / CAT 延长器
单片机·嵌入式硬件·音视频
藏,捉24 分钟前
使用自己绘制的板子通过485与西门子PLC1214C通讯,控制舵机摇摆运动
单片机·工控·485通讯
kaikaile199533 分钟前
基于DSP28335与AD7606的采样程序实现
单片机·嵌入式硬件
Joshua-a38 分钟前
STM32嵌入式开发核心:volatile与寄存器操作详解
单片机·嵌入式硬件
顾安r2 小时前
11.22 脚本 手机termux项目分析(bash)
前端·python·stm32·flask·bash
九鼎创展科技4 小时前
九鼎创展发布X3588SCV4核心板,集成LPDDR5内存,提升RK3588S平台性能边界
android·人工智能·嵌入式硬件·硬件工程
智者知已应修善业6 小时前
【51单片机LED贪吃蛇】2023-3-27
c语言·c++·经验分享·笔记·嵌入式硬件·51单片机
国科安芯6 小时前
MCU芯片AS32A601与INA226芯片精确测量实现与应用
网络·单片机·嵌入式硬件·架构·安全性测试
一支闲人7 小时前
STM32 CAN外设1
stm32·单片机·嵌入式硬件·基础知识·cna协议
HanLop7 小时前
51单片机入门
单片机·嵌入式硬件·51单片机