MCU中printf重定向實現

2022-09-03 13:27:08 字數 624 閱讀 2063

// 新增標頭檔案

#include "stdio.h"  

#include "stdarg.h"   

//全域性變數

bit ti_busy;

unsigned char idata putbuf[100];  //最大數量

/*  idata注釋:

定義乙個位元組型的變數,這個變數儲存在ram的idata區.微控制器的儲存主要分為四個區域:data、idata、code、xdata。

data區:微控制器能直接訪問的直接定址ram區,00h-7fh

idata區:微控制器間接防問的ram區,80h-ffh

code區:微控制器的內部程式儲存區,也就是微控制器內建的falsh

xdata區:微控制器外部定址區,一般指片外的儲存器,0000h-ffffh

*/// 串列埠列印函式實現 

void debug_printf(char* fmt,...)

memset(putbuf, 0, sizeof(putbuf));   //清空快取(自己實現)

}//main入口函式

void main()  

} //中斷處理函式    

void uart1() interrupt 4  }

COIDE下重定向printf

在stm32下,可能需要重定向printf到串列埠,而coide下提供了重定向printf的元件,使用起來是相當方便的。先add這個元件,然後在printf.c下稍加修改即可使用了。先新增串列埠的標頭檔案。然後,修改printchar函式,讓它使用串列埠傳送資料。此外,還需要注釋這一句,否則鏈結時會...

重定向printf到串列埠

參考鏈結 stm32 hal庫學習 三 adc取樣以及printf的使用 stm32cubeide 二 printf重定向設定 stm32cubeide實現printf重定向輸出到串列埠 在main.c檔案中插入如下 user code begin 0 include stdio.h ifdef g...

fputc函式重寫實現printf重定向

一,printf重定向原理 1,自己重寫c的庫函式 鏈結器檢查到使用者編寫了與c庫函式相同名字的函式時,優先呼叫使用者編寫函式,這樣就可實現重定向 2,重定向printf 函式 需重寫fputc 這個c標準庫函式 printf 在c標準庫函式實質是乙個巨集,實際是呼叫fputc 函式 說明fputc...