標(biāo)題: 單片機(jī)LCD12864字符串問(wèn)題 [打印本頁(yè)]

作者: 1372478861    時(shí)間: 2022-4-7 19:49
標(biāo)題: 單片機(jī)LCD12864字符串問(wèn)題
unsigned char code rightString[] =  "當(dāng)前距離為:";
unsigned char code errorString[] =  "錯(cuò)誤!超出測(cè)量距離";
unsigned char *p;
如上定義兩個(gè)字符串和一個(gè)指針

在以下判斷中選擇讓指針指向不同的字符串地址

if((S>=700)||flag==1) //超出測(cè)量范圍顯示“-”
         {         
          flag=0;
        p = errorString;}
else
         {p = rightString;}

在主程序中向LCD12864傳輸顯示字符

lcd12864_hanzi(p);

以下是函數(shù)的定義,可以確定的是LCD12864的驅(qū)動(dòng)函數(shù)都沒(méi)有問(wèn)題,但就是字符串不顯示

void lcd12864_hanzi(unsigned char *s)
{
        while(*s)
                lcd12864_wdat(*s++);
}


作者: zhxiufan    時(shí)間: 2022-4-8 12:16
12864最多一行只能顯示8個(gè)漢字,你的字符串里面有一個(gè)超了。另外,還需要送顯示地址吧,沒(méi)有看到這個(gè)。
作者: yzwzfyz    時(shí)間: 2022-4-8 13:58
你是調(diào)用別人的函數(shù)來(lái)處理【LCD12864字符串】的,所以就必須依據(jù)這個(gè)函數(shù)的要求來(lái)。
研究讀通函數(shù)的定義吧。
例如:沙發(fā)提到的【12864最多一行只能顯示8個(gè)漢字】,普通函數(shù)是這樣的。
如果:函數(shù)能自動(dòng)換行,就可以顯示16個(gè)了。
再如果:函數(shù)能滾動(dòng)顯示,就可以顯示更多個(gè)了。
所以,你想用什么函數(shù),就先讀通它的輸入、輸出要求。問(wèn)題就全OK了。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1