• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 博客專欄

    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


    *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



    關鍵詞: 重定向

    技術專區

    關閉
    主站蜘蛛池模板: 高陵县| 行唐县| 邹平县| 龙门县| 清水县| 当阳市| 沧州市| 个旧市| 寻甸| 靖江市| 唐河县| 肃宁县| 贵州省| 玛多县| 洱源县| 宁德市| 孝义市| 秦安县| 牙克石市| 罗田县| 南京市| 白水县| 元朗区| 新巴尔虎右旗| 小金县| 兴义市| 和田县| 炎陵县| 旌德县| 靖远县| 丽江市| 黑山县| 民和| 运城市| 河曲县| 双城市| 丰顺县| 安乡县| 云安县| 新邵县| 九龙坡区|