博客專欄

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

STM32 printf重定向(串口輸出)

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

一、前言


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

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

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


二、標(biāo)準(zhǔn)庫與HAL庫實(shí)現(xiàn)重定向到串口


若需要printf輸出到串口,則需要將fputc里面的輸出指向串口,這一過程稱為重定向。


    1.標(biāo)準(zhǔn)庫(重定向到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)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



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

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

關(guān)閉