博客專欄

        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


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



        關鍵詞: 重定向

        技術專區

        關閉
        主站蜘蛛池模板: 崇仁县| 墨玉县| 长阳| 太湖县| 绥滨县| 米泉市| 茌平县| 巴林右旗| 昆明市| 安徽省| 常宁市| 洛南县| 昌吉市| 洪泽县| 东乌珠穆沁旗| 仪陇县| 兰考县| 桃江县| 定陶县| 扶沟县| 岳西县| 抚松县| 宜兰县| 锦屏县| 富平县| 梧州市| 长丰县| 大洼县| 柞水县| 玉山县| 泽州县| 布拖县| 闸北区| 日土县| 通许县| 武鸣县| 吴旗县| 临西县| 铜鼓县| 晴隆县| 科尔|