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

相关推荐
GY35091 小时前
AC7801时钟配置流程
单片机·嵌入式硬件·车载系统·车载mcu·系统时钟
LaoZhangGong1231 小时前
51单片机第22步_interrupt和using关键字
单片机·嵌入式硬件·51单片机
LaoZhangGong1231 小时前
51单片机第27步_单片机工作在睡眠模式
单片机·嵌入式硬件·51单片机
如图所示z1 小时前
单片机IO
单片机·嵌入式硬件
sqzrzq3 小时前
STM32——GPIO(点亮LED)
stm32·单片机·嵌入式硬件
qq_392399903 小时前
STM32 SWD烧写
stm32·单片机·嵌入式硬件
宁静致远20214 小时前
【正点原子MP157连载】第十九章 Buildroot根文件系统构建-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
linux·驱动开发·stm32
岁心6 小时前
高性价比模块:LSYT201B语音模块学习使用
stm32·单片机·嵌入式硬件·学习·智能家居·语音识别
guaizaiguaizai6 小时前
STM32之五:TIM定时器(2-通用定时器)
stm32·单片机·嵌入式硬件·输入捕获·pwm·输出比较
LaoZhangGong12315 小时前
51单片机第2步_printf()函数应用
单片机·嵌入式硬件·51单片机