专栏中心

EEPW首页 > 专栏 > STM32 printf重定向(串口输出)

STM32 printf重定向(串口输出)

发布人:电子禅石 时间:2024-07-13 来源:工程师 发布文章

一、前言


什么是重定向?重定向是指将fputc里面的输出指向目标设备。

因printf函数调用了fputc,而fputc输出有默认指向的目标,

且不同库中的fputc输出指向不同,所以需要重写fputc


二、标准库与HAL库实现重定向到串口


若需要printf输出到串口,则需要将fputc里面的输出指向串口,这一过程称为重定向。


    1.标准库(重定向到USARTx,代码中为USART1)


int fputc(int ch,FILE *p) 

 

{

 

 USART_SendDate(USART1,(u8)ch);

 

 while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET);

 

 return ch;

 

}

    2.HAL库 (重定向到huartx,代码中为huart1)


int fputc(int ch, FILE *f)

 

{

 

  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);

 

  return ch;

 

}

NOTES:


1.调用printf需先导入stdio.h头文件


2.需勾选Target中的use MicroLIB

————————————————


                        

原文链接:https://blog.csdn.net/xuhuang11/article/details/119580130


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词: 重定向

相关推荐

基于虚拟通道的Flash映射技术

更多 培训课堂
更多 焦点
更多 视频

技术专区