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

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

相关推荐
fengfuyao9859 小时前
STM32如何定位HardFault错误,一种实用方法
stm32·单片机·嵌入式硬件
爱学习的颖颖10 小时前
EXTI外部中断的执行逻辑|以对射式红外传感器计次为例
单片机·嵌入式硬件·exti中断
keer_zu10 小时前
STM32L051 RTC闹钟配置详解
stm32·嵌入式硬件
AI精钢11 小时前
H20芯片与中国的科技自立:一场隐形的博弈
人工智能·科技·stm32·单片机·物联网
etcix14 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
谱写秋天14 小时前
在STM32F103上进行FreeRTOS移植和配置(STM32CubeIDE)
c语言·stm32·单片机·freertos
globbo17 小时前
【嵌入式STM32】I2C总结
单片机·嵌入式硬件
玖別ԅ(¯﹃¯ԅ)18 小时前
SysTick寄存器(嘀嗒定时器实现延时)
stm32·单片机·嵌入式硬件
limitless_peter18 小时前
集成运算放大器(反向比例,同相比例)
嵌入式硬件·硬件工程
Blossom.11819 小时前
把 AI 推理塞进「 8 位 MCU 」——0.5 KB RAM 跑通关键词唤醒的魔幻之旅
人工智能·笔记·单片机·嵌入式硬件·深度学习·机器学习·搜索引擎