原始的單片機(jī)串口只能發(fā)送單字節(jié)數(shù)據(jù),再加個(gè)封裝也就能發(fā)送個(gè)字符串,但是無(wú)法發(fā)送數(shù)字變量,要發(fā)送數(shù)字變量那基本要引入C語(yǔ)言的庫(kù)函數(shù)printf,但是這個(gè)pintf函數(shù) 好用確實(shí)是好用但是有個(gè)很大的缺點(diǎn)相對(duì)于小存儲(chǔ)容量的單片機(jī)來(lái)說(shuō),就是占用存儲(chǔ)容量特別大,我曾在51單片機(jī)上測(cè)試 引入個(gè)printf函數(shù)占用1KB ROM空間,這就離譜了 我那個(gè)51單片機(jī)一共才8KB ROM,這就不能使用printf函數(shù)了,太占用存儲(chǔ)器空間了!但是在開(kāi)發(fā)的時(shí)候 有時(shí)候?yàn)榱苏{(diào)試,比如的輸出個(gè)溫度數(shù)據(jù),ADC檢測(cè)到的電壓值,不接顯示屏的情況下又必須得用到串口打印,所以我就自己DIY了個(gè)串口打印函數(shù)
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、重慶小程序開(kāi)發(fā)公司、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了路北免費(fèi)建站歡迎大家使用!char* number[]={"0","1","2","3","4","5","6","7","8","9","10"};
void print(char*str, int x)
{SCI_SendString(str);
if(x>0 && x<100)
{SCI_SendString(number[x/10]);//串口發(fā)送字符串函數(shù)
SCI_SendString(number[x%10]);
}
else if(x>=100 && x<1000)
{SCI_SendString(number[x/100]);
SCI_SendString(number[(x%100)/10]);
SCI_SendString(number[x%10]);
}
else if(x>=1000 && x<10000)
{SCI_SendString(number[x/1000]);
SCI_SendString(number[(x%1000)/100]);
SCI_SendString(number[(x%100)/10]);
SCI_SendString(number[x%10]);
}
SCI_SendString("\r\n");
}
//example: print("ADC: ",a);
這個(gè)打印函數(shù)的算法原理比較簡(jiǎn)單粗糙,只能打印正整數(shù),函數(shù)的實(shí)現(xiàn)思路在這里了,大家如果有需要打印負(fù)數(shù),浮點(diǎn)數(shù)的可以在這個(gè)基礎(chǔ)上改改
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧