串口實(shí)驗(yàn)printf輸出是亂碼
解決辦法:編寫(xiě)fputc函數(shù)如下:
int
{
}
問(wèn)題2(與編譯軟件有關(guān)):重定向函數(shù)fputc編寫(xiě)無(wú)誤,使用的是MDK4.22-3.40之間的編譯環(huán)境,未使用微庫(kù),即MiclroLIB,因printf()之類(lèi)的函數(shù),使用了半主機(jī)模式。使用微庫(kù)的話(huà),不會(huì)使用半主機(jī)模式,所以就沒(méi)有問(wèn)題。
解決辦法:在option
問(wèn)題3:重定向函數(shù)fputc編寫(xiě)無(wú)誤,不用微庫(kù),即MiclroLIB,依然可以使用printf
解決辦法:
在程序中加入如下語(yǔ)句:
#pragma
_sys_exit(int
{
x
}
struct
{
int
};
FILE
此代碼功能用于避免使用semhosting(半主機(jī)模式)
問(wèn)題4:使用的是MDK4.22-3.40之間的編譯環(huán)境,不想使用微庫(kù),也不想加入問(wèn)題三語(yǔ)句。
解決辦法:
更換低版本的MDK,3.4以下吧,本人試驗(yàn)使用mdk3.24不勾選MiclroLIB,也不加入問(wèn)題三語(yǔ)句,能夠正常使用printf,無(wú)任何問(wèn)題。
評(píng)論