博客專欄

        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


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



        關鍵詞: 重定向

        技術專區

        關閉
        主站蜘蛛池模板: 吉木萨尔县| 榆树市| 四平市| 北流市| 茌平县| 崇礼县| 岳阳市| 固镇县| 武鸣县| 哈巴河县| 湘阴县| 甘洛县| 年辖:市辖区| 万山特区| 黄大仙区| 张掖市| 中山市| 伊川县| 安乡县| 获嘉县| 安吉县| 通州区| 犍为县| 伊川县| 普陀区| 乌什县| 会宁县| 潍坊市| 鹿泉市| 双牌县| 彩票| 洱源县| 浦江县| 仁怀市| 阿荣旗| 黄冈市| 宜州市| 灵台县| 八宿县| 都匀市| 琼结县|