|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我用的是帶字庫的LCD,,想這樣用,請問錯在哪里,怎么解決? |
| 作者:lhzw2001 欄目:ARM技術 |
我用的是帶字庫的LCD,,想這樣用,請問錯在哪里,怎么解決? void sendtolcd (uchar dat_comm,uchar content) { uchar stdbit; uchar a,i,j; delay (50); a=content; set_cs; clr_sclk; set_std; for(i=0;i<5;i++) { set_sclk; clr_sclk; } clr_std; set_sclk; clr_sclk; if(dat_comm) set_std; else clr_std; set_sclk; clr_sclk; clr_std; set_sclk; clr_sclk; for(j=0;j<2;j++) { for(i=0;i<4;i++) { stdbit=a&0x80; if(stdbit==0x80) set_std; else clr_std; set_sclk; clr_sclk; a=a<<1; } clr_std; for(i=0;i<4;i++) { set_sclk; clr_sclk; } } } void write_one_word (uchar const *chn,uchar xx) { sendtolcd (0,0x30); sendtolcd (0,xx); for (i=0;i<2;i++) sendtolcd (1,chn[i]); } int main(void) { write_one_word ("何",0);面 //??????????這里編譯不過去 } Error : C3028E: <argument 1 to 'write_one_word'>: implicit cast of pointer to non-equal pointer main.c LINE 44 F:\Mydesigns\ARMZLG\Project\main.c: 0 warnings, 1 error, 0 serious errors |
| 2樓: | >>參與討論 |
| 作者: hotpower 于 2006/3/25 1:05:00 發(fā)布:
這種程序沒法用 |
|
| 3樓: | >>參與討論 |
| 作者: lhzw2001 于 2006/3/25 12:13:00 發(fā)布:
你是指write_one_word ("何",0);這樣是不行的是嗎? write_one_word ("何",0);面 //??????????這里編譯不過去 |
|
| 4樓: | >>參與討論 |
| 作者: lhzw2001 于 2006/3/25 15:22:00 發(fā)布:
有沒有什么好辦法解決呢,把漢字的內(nèi)碼值傳遞下去 |
|
| 5樓: | >>參與討論 |
| 作者: liwenz 于 2006/3/25 20:31:00 發(fā)布:
你用的是什么lcd 我用的12864帶字庫的還可以,但是有點不穩(wěn)定 |
|
| 6樓: | >>參與討論 |
| 作者: lhzw2001 于 2006/3/26 8:55:00 發(fā)布:
我也是,用的是ST7920的控制器! 那在ADS中這樣的寫法,write_one_word ("何",0);要怎么樣才能編譯呢? void write_one_word (uchar const *chn,uchar xx) //這樣寫法,編譯不了 { for (i=0;i<2;i++) sendtolcd (1,chn[i]); } |
|
| 7樓: | >>參與討論 |
| 作者: liwenz 于 2006/3/26 20:11:00 發(fā)布:
我用的也是,你可用全局變量 我的方法使用的全局變量 lcd用的串口方式 |
|
| 8樓: | >>參與討論 |
| 作者: hotpower 于 2006/3/26 21:12:00 發(fā)布:
試試看 void write_one_word (uchar const *chn,uchar xx) //這樣寫法,編譯不了 { for (i=0;i<2;i++) sendtolcd (1,*(chn + i)); } |
|
| 9樓: | >>參與討論 |
| 作者: lhzw2001 于 2006/3/27 8:46:00 發(fā)布:
to hotpower: & to liwenz : to hotpower: 謝謝你,但此法仍然沒法編譯過去! void write_one_word (uchar const *chn,uchar xx) { //即使是空函數(shù),也無法編譯 } 我在一些ucgui的例子里有看到過這種寫法的,不知道為何,我就是 編譯不了,這些在C51中都可以很容易實現(xiàn)的! to liwenz : 我用的就是串口方式的,這個問題根用什么LCD無關,應該是編譯器的事,你也是用ADS來編譯的嗎?可否把你的寫法說說! |
|
| 10樓: | >>參與討論 |
| 作者: liwenz 于 2006/3/27 9:18:00 發(fā)布:
我用的也是ADS,因為我買的EasyARM2132 我的程序用在我的產(chǎn)品中的,給你相關的一部分, void HzDisp(int8 xPos,uint8* str,int8 lenth) { int i; LcdWriteByte(0xf8,0x80+xPos); for(i=0;i<lenth;i++) { if(str[i]==0) return; LcdWriteByte(0xfa,str[i]); } IO0CLR=SMGCS; } void HzkDisp(void) { uint8 str0[]="少小離家老大回,"; uint8 str1[]="鄉(xiāng)音不改鬢毛衰。"; uint8 str2[]="兒童相見不相識,"; uint8 str3[]="笑問客從何處來。"; HzDisp(0,str0,16); HzDisp(16,str1,16); HzDisp(8,str2,16); HzDisp(24,str3,16); } |
|
| 11樓: | >>參與討論 |
| 作者: lhzw2001 于 2006/3/27 9:55:00 發(fā)布:
呵,在一樓的帖子里就發(fā)了! 呵,在一樓的帖子里就發(fā)了!! Error : C3028E: <argument 1 to 'write_one_word'>: implicit cast of pointer to non-equal pointer main.c LINE 44 F:\Mydesigns\ARMZLG\Project\main.c: 0 warnings, 1 error, 0 serious errors |
|
| 12樓: | >>參與討論 |
| 作者: computer00 于 2006/3/27 10:25:00 發(fā)布:
這不寫得很清楚嘛,指針類型不符。 你將const去掉試試。 |
|
| 13樓: | >>參與討論 |
| 作者: lhzw2001 于 2006/3/27 11:08:00 發(fā)布:
去掉也不行! |
|
| 14樓: | >>參與討論 |
| 作者: computer00 于 2006/3/27 11:26:00 發(fā)布:
那就把uCHAR的u去掉,改成CHAR………… 多試幾次不就知道了………………const再加回去試試………… |
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |