STM32重定向printf到串口(重写fputc不生效)

使用STM32开发,想用printf把输出打印到串口,需要重定向printf函数。

网上一搜全都是重写fpuc的,但这只针对使用了MicroLIB的情况,如果你使用STM32CubeMX配置了CMake或者Makefile项目,这种方法是根本不可行的,重写fputc没有鸟用。

这个时候需要重写_write函数,如下:

复制代码
/// 重写_write,重定向到日志输出串口
int _write(int file, char *ch, int len)
{
    HAL_UART_Transmit(&UART_LOG, (uint8_t *)ch, 1, 10);
    return 1;
}

如果你的波特率非常低,10ms都传不完一个字节,那就把HAL_UART_Transmit函数的最后一个参数(超时时间)改长一点。

同步发布在简书:https://www.jianshu.com/p/0bd6ee925e1c?v=1719323174816

相关推荐
小莞尔12 分钟前
【51单片机】【protues仿真】基于51单片机烟雾温湿度检测控制系统
c语言·stm32·单片机·嵌入式硬件·51单片机
李永奉15 分钟前
51单片机-实现DAC(PWM)数模转换PWM控制呼吸灯、直流电机实验教程
单片机·嵌入式硬件·51单片机
芯岭38 分钟前
高性能系列微控制器XL32F001开发板
单片机·嵌入式硬件
XINVRY-FPGA1 小时前
XCVU13P-2FLGA2577I Xilinx AMD VirtexUltraScale+ FPGA
嵌入式硬件·fpga开发·云计算·硬件工程·dsp开发·射频工程·fpga
佛科院23电子阿浩2 小时前
STM32CUBEMX + STM32L051C8T6 + RTC实时时钟 + 闹钟定时唤醒 + 周期唤醒 + STANDBY模式RTC唤醒
stm32·低功耗
上园村蜻蜓队长3 小时前
ARM芯片架构之调试访问端口(DAP)
arm开发·单片机·fpga开发·架构
qq_241585614 小时前
RGB三色呼吸灯 跑马
单片机·嵌入式硬件
浅笑离愁12344 小时前
物联网智能安防系统
stm32·物联网·c#
通信好难学4 小时前
九、Proteus817实现51单片机DHT22温湿度读取
单片机·嵌入式硬件·51单片机