博客專欄

EEPW首頁 > 博客 > STM32 printf重定向(串口輸出)

STM32 printf重定向(串口輸出)

發(fā)布人:電子禪石 時間:2024-07-13 來源:工程師 發(fā)布文章

一、前言


什么是重定向?重定向是指將fputc里面的輸出指向目標設(shè)備。

因printf函數(shù)調(diào)用了fputc,而fputc輸出有默認指向的目標,

且不同庫中的fputc輸出指向不同,所以需要重寫fputc


二、標準庫與HAL庫實現(xiàn)重定向到串口


若需要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.調(diào)用printf需先導(dǎo)入stdio.h頭文件


2.需勾選Target中的use MicroLIB

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


                        

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


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 重定向

技術(shù)專區(qū)

關(guān)閉