系統調試信息的顯示方法
void myputs(char str) /*顯示一個字符*/
{
while((*str)!='0')myputchar('str++);
}
/*顯示任意進制的數值,b為二、八、十、十六等進制數*/
void myprintn(int,n,int b)
{
if(b= =16){ myprintx(n); return; }
if(n0){ myputchar('-'); n=-n; };
if(n/b)
myprintn(n/b,b);
myputchar(n%b+'0');
}
void myprintx(int n) /*以十六進制顯示1個數字*/
{
signed char i;
for(i=3;i>=0;i--)
if(((n》i*4)0x0f)>=10)
/*當10,11…時,顯示'a','b',…'f',*/
myputchar(((n》i*4)0x0f)-10+'a');
else myputchar(((n》i*4)0x0f)+'0');
}
/*
*在很多嵌入式系統中,并不存在PC一樣的標準顯示設備,
*通過修改該函數,可以將字符“ch”發送到串口,或者目
*標系統中的LED、LCD等顯示器件。這樣,就可以在脫
*件或硬件。
*/
void myputchar(int ch)
{
……;/*此函數可供修改,將字符“ch”送到SBUF或其他顯示器件就可以了*/
}
4 超級終端軟件的使用
超級終端,即計算機顯示終端,是計算機系統的輸入、輸出設備。計算機顯示終端伴隨主機時代的集中處理模式而產生,并隨著計算技術的發展而不斷發展。迄今為止,計算技術經歷了主機時代、PC時代和網絡計算時代這三個發展時期,終端與計算技術發展的三個階段相適應,應用也經歷了字符啞終端、圖形終端和網絡終端這三個形態。超級終端是一個通用的串行交互軟件,很多嵌入式應用的系統有與之交換的相應程序,通過這些程序,可以通過超級終端與嵌入式系統交互,使超級終端成為嵌入式系統的“顯示器”。
打開Windows的“超級終端”軟件,再打開“hypertrm”,新建一個終端會話。在該會話的“屬性u35774設置u32456終端仿真”菜單下,將終端仿真類型設置為VT100[5];在“屬性u35774設置u32456終端設置u23383字符集”菜單下設置字符集為“ASCII”;在“屬性u36830連接到u37197配置u24120常規u26368最快速度”下設置通信波特率和目錄系統一致,并將該對話框下“僅以該速度連接打開”設置選中;在“屬性u36830連接到u37197配置u36830連接u36830連接首選項”下設置傳送數據位數、校驗方式。
超級終端的原理是將用戶輸入隨時發向串口(采用TCP協議時是發往網口,這里只說串口的情況),但并不顯示輸入。它顯示的是從串口接收到的字符。所以,嵌入式系統的相應程序應該完成的任務便是:
1、將自己的啟動信息、過程信息主動發到運行有超級終端的主機;
2、將接收到的字符返回到主機,同時發送需要顯示的字符(如命令的響應等)到主機。
在用超級終端顯示時,唯一要求發送的數據必須以ASCII碼形式發送(上述printf()函數就是如此)。如果要求交互式雙向數據傳送,請參考VT100文檔[5]。對于字符和控制的說明,這里不再描述。
評論