久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2809|回復(fù): 29
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)教,這個(gè)漢字索引錯(cuò)怎樣糾正?謝謝

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:967119 發(fā)表于 2021-11-12 22:22 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如下 :



原源文件是51系統(tǒng)的。
環(huán)境:proteus V8.9 , XC8 V1.31
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:624769 發(fā)表于 2021-11-12 23:40 | 只看該作者
把這個(gè) “時(shí)”以及后面的逗號(hào)一起刪掉就好了吧……

你字庫(kù)是 16x16 看你一個(gè)字 剛好32個(gè)字節(jié), 所以,這個(gè)“時(shí)” 是不應(yīng)該出現(xiàn)在字庫(kù)里才對(duì)的。
回復(fù)

使用道具 舉報(bào)

板凳
ID:967119 發(fā)表于 2021-11-13 09:25 | 只看該作者
188610329 發(fā)表于 2021-11-12 23:40
把這個(gè) “時(shí)”以及后面的逗號(hào)一起刪掉就好了吧……

你字庫(kù)是 16x16 看你一個(gè)字 剛好32個(gè)字節(jié), 所以,這 ...

“時(shí)", 但這個(gè)是作索引用的,后面顯示時(shí)要用它查找對(duì)應(yīng)的漢字點(diǎn)陣。不能刪。






回復(fù)

使用道具 舉報(bào)

地板
ID:967119 發(fā)表于 2021-11-13 10:36 | 只看該作者
本帖最后由 cczjw 于 2021-11-13 11:10 編輯
cczjw 發(fā)表于 2021-11-13 09:25
“時(shí)", 但這個(gè)是作索引用的,后面顯示時(shí)要用它查找對(duì)應(yīng)的漢字點(diǎn)陣。不能刪。

我猜測(cè),那個(gè)索引 hzk_2[2] 就是給這個(gè) ”時(shí)“ 漢字用的,占2個(gè)字節(jié)如下圖示。要將這個(gè)”時(shí)“轉(zhuǎn)化為兩個(gè)字節(jié)靠 編譯器完成。而我這C語(yǔ)言編譯器 XC8不支持? 不知我猜測(cè)對(duì)不對(duì)。請(qǐng)指教!



回復(fù)

使用道具 舉報(bào)

5#
ID:401564 發(fā)表于 2021-11-13 13:06 | 只看該作者
有可能這種寫(xiě)法只能在51的環(huán)境下運(yùn)行,如果換了單片機(jī),你可能試一下GB2312碼來(lái)代替,
比如"時(shí)"是:0x42,0x17     (4217)是"時(shí)"的代碼
不管是SH1106還是SSD1306,網(wǎng)上都有資料,不要去直接復(fù)制別人的代碼,用個(gè)兩三天的時(shí)間,自己就可以寫(xiě)了
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2021-11-13 13:14 | 只看該作者
如果,把這個(gè)漢字換成兩個(gè)獨(dú)立的16進(jìn)制就不報(bào)錯(cuò)的話……, 你可以嘗試按地板的說(shuō)法,換成0x42,0x79,
然后,define 一下“時(shí)” 為 0x4279   ?
回復(fù)

使用道具 舉報(bào)

7#
ID:967119 發(fā)表于 2021-11-13 20:38 | 只看該作者
本帖最后由 cczjw 于 2021-11-13 20:46 編輯

5、6樓說(shuō)得對(duì),將 “時(shí)” 換成拆解后的 0x42,0x17 就不報(bào)這個(gè)錯(cuò)了。說(shuō)明似乎是 編譯器 XC8 不能譯碼 ”時(shí)“ 為2個(gè)16進(jìn)制數(shù) 0x42,0x16 ,或者 時(shí) 字前后的分隔符(”)在 XC8 應(yīng)該用其它的?(我試過(guò)(‘)也不行)
它現(xiàn)在報(bào)的錯(cuò)是非法字符,問(wèn)題應(yīng)該還是出在 “時(shí)” 這個(gè)漢字前后的雙引號(hào)上。



有懂的大俠指教一、二?謝謝!
回復(fù)

使用道具 舉報(bào)

8#
ID:967119 發(fā)表于 2021-11-13 20:52 | 只看該作者
188610329 發(fā)表于 2021-11-13 13:14
如果,把這個(gè)漢字換成兩個(gè)獨(dú)立的16進(jìn)制就不報(bào)錯(cuò)的話……, 你可以嘗試按地板的說(shuō)法,換成0x42,0x79,
然后, ...

你說(shuō)的這樣確實(shí)能夠應(yīng)急,但我想找到根本原因,便于以后正常使用。
回復(fù)

使用道具 舉報(bào)

9#
ID:967119 發(fā)表于 2021-11-13 21:22 | 只看該作者
5、6樓說(shuō)的不錯(cuò)。我用內(nèi)碼 0x42,0x17 換下 “時(shí)” 后就不報(bào)這個(gè)錯(cuò)了。似乎是編譯器 XC8 在這里不把 “時(shí)" 解析為內(nèi)碼 0x42,0x17,所以這語(yǔ)句不能通過(guò)。因報(bào)的是 非法字符 錯(cuò)(下圖示),所以也許 XC8 不認(rèn) "時(shí)” 中的雙引號(hào) “ 而認(rèn)的是其它分隔符?我試了用單引號(hào) ’ 也是報(bào)同樣的錯(cuò)。



有哪位大俠明白?指點(diǎn)一、二?謝謝!
回復(fù)

使用道具 舉報(bào)

10#
ID:967119 發(fā)表于 2021-11-14 11:32 | 只看該作者
下圖是 C編譯器XC8 出錯(cuò)信息指導(dǎo)。難道不能出現(xiàn)漢字?


回復(fù)

使用道具 舉報(bào)

11#
ID:624769 發(fā)表于 2021-11-14 13:22 | 只看該作者
一般,嚴(yán)謹(jǐn)?shù)木幾g器是不會(huì)允許使用漢字的,畢竟沒(méi)有表頭指定的話,同樣一個(gè)漢字GB2312,UTF8, GB18003, 都是不一樣的內(nèi)碼,編譯器壓根不知道應(yīng)該按哪個(gè)字典來(lái)給你譯, 編譯器表示,這個(gè)鍋,不背。
回復(fù)

使用道具 舉報(bào)

12#
ID:967119 發(fā)表于 2021-11-14 13:25 | 只看該作者
188610329 發(fā)表于 2021-11-14 13:22
一般,嚴(yán)謹(jǐn)?shù)木幾g器是不會(huì)允許使用漢字的,畢竟沒(méi)有表頭指定的話,同樣一個(gè)漢字GB2312,UTF8, GB18003, 都是 ...

那,這個(gè)問(wèn)題該怎樣解決呢?
回復(fù)

使用道具 舉報(bào)

13#
ID:624769 發(fā)表于 2021-11-14 14:01 | 只看該作者
cczjw 發(fā)表于 2021-11-14 13:25
那,這個(gè)問(wèn)題該怎樣解決呢?

1) 你遷就編譯器, 他說(shuō)不許,你就不用。(就像前面說(shuō)的直接用16進(jìn)制,然后define唄)
2) 編譯器遷就你,他不許,你就換別的編譯器,直到這個(gè)編譯器端正態(tài)度,給你用為止,你再考慮用回這個(gè)編譯器。

講道底, 商業(yè)角度講,這叫買(mǎi)方市場(chǎng),還是賣(mài)方市場(chǎng)。
情感角度,這叫男追女,還是女追男。
要么有一方讓步,要么一拍兩散,沒(méi)必要強(qiáng)擰,瓜不甜。
回復(fù)

使用道具 舉報(bào)

14#
ID:373388 發(fā)表于 2021-11-14 14:04 | 只看該作者
你用的是什么開(kāi)發(fā)平臺(tái)呢,是不是MICROCHIP 的MPLAB X IDE,  MPLAB X IDE 菜單tool->option->Embedded->Generic settings->Default Charset   選擇 GB2312  應(yīng)該可以解決這個(gè)問(wèn)題;還有struct hzk{uchar hzk_2[2],........};修改為struct hzk{uint kzk_1,......};
回復(fù)

使用道具 舉報(bào)

15#
ID:373388 發(fā)表于 2021-11-14 14:05 | 只看該作者
漢字編碼占用兩個(gè)字節(jié),定義為uint
回復(fù)

使用道具 舉報(bào)

16#
ID:401564 發(fā)表于 2021-11-14 14:26 | 只看該作者
cczjw 發(fā)表于 2021-11-14 13:25
那,這個(gè)問(wèn)題該怎樣解決呢?

看一下數(shù)據(jù)手冊(cè),有沒(méi)有其它辦法,沒(méi)有的話,就只能輸入代碼了
GB2312是漢字字庫(kù),說(shuō)白了就是中國(guó)
芯片廠商重視中國(guó)市場(chǎng),就搞個(gè)兼容,不重視,你愛(ài)咋咋的,PIC也就這幾年開(kāi)始重視中國(guó)市場(chǎng),很多芯片都開(kāi)始有中文的PDF,當(dāng)初的PIC16F877A這個(gè)經(jīng)典型號(hào)可是沒(méi)有中文PDF的......

回復(fù)

使用道具 舉報(bào)

17#
ID:967119 發(fā)表于 2021-11-14 17:03 | 只看該作者
188610329 發(fā)表于 2021-11-14 14:01
1) 你遷就編譯器, 他說(shuō)不許,你就不用。(就像前面說(shuō)的直接用16進(jìn)制,然后define唄)
2) 編譯器遷就 ...

如果真是這樣當(dāng)然要么不用它要么適應(yīng)它,問(wèn)題是我現(xiàn)在需確定XC8是否肯定在這種索引操作中不能用 漢字 作索引?還是我語(yǔ)句語(yǔ)法沒(méi)用對(duì)?
回復(fù)

使用道具 舉報(bào)

18#
ID:967119 發(fā)表于 2021-11-14 17:06 | 只看該作者
xhaity 發(fā)表于 2021-11-14 14:05
漢字編碼占用兩個(gè)字節(jié),定義為uint

我試了,改為 uint 也不行。
回復(fù)

使用道具 舉報(bào)

19#
ID:624769 發(fā)表于 2021-11-14 22:31 | 只看該作者
cczjw 發(fā)表于 2021-11-14 17:03
如果真是這樣當(dāng)然要么不用它要么適應(yīng)它,問(wèn)題是我現(xiàn)在需確定XC8是否肯定在這種索引操作中不能用 漢字 作 ...

不知道該怎么跟你講……

這么說(shuō)吧,如果,你把 時(shí)  換成 '0' 的話,編譯應(yīng)該是能通過(guò)的。 他會(huì)把它翻譯成 0x30,做為這個(gè)數(shù)組的一部分。
那么,如果,他支持漢字,比如內(nèi)建了 GB2312 字庫(kù), 那么,編譯的時(shí)候,就會(huì)把 “時(shí)” 翻譯成 0x4712 作為這個(gè)數(shù)組的一部分,而實(shí)際上,一般不會(huì)這么做,理由很復(fù)雜,三兩句說(shuō)不清,主要原因就是字庫(kù)太多,不管怎么翻都可能會(huì)出現(xiàn)錯(cuò)誤。編譯的時(shí)候按GB2312 編譯了, 調(diào)用的時(shí)候用的 UTF8 去找,同樣一個(gè) “時(shí)”  數(shù)組里面確死活找不到。
嚴(yán)歸正傳,即便支持GB2312  把 “時(shí)” 翻譯成 0x4712 實(shí)際上最后存在 數(shù)組當(dāng)中的, 還是 0x4712, 所以,你對(duì)這個(gè)  “時(shí)”  能不能通過(guò)編譯,為什么那么執(zhí)著呢? 而且,會(huì)有另一個(gè)問(wèn)題,   “時(shí)”  = 0x4712 是一個(gè)16位數(shù)據(jù),你數(shù)組是 8 位的, 這么混合放入數(shù)組, 又會(huì)出現(xiàn)新的錯(cuò)誤。 除非,你把后面那些 全都兩兩結(jié)合,變成16位數(shù)據(jù),數(shù)組改成16位的。那么,通過(guò)概率還能大點(diǎn)。反正,換了我,寧可用‘S’ 'H'  來(lái)索引 也不愿用 “時(shí)” 來(lái)索引,即便編譯器支持。 因?yàn)椴恢罆?huì)幫我編譯成什么。
回復(fù)

使用道具 舉報(bào)

20#
ID:967119 發(fā)表于 2021-11-14 22:56 | 只看該作者
188610329 發(fā)表于 2021-11-14 22:31
不知道該怎么跟你講……

這么說(shuō)吧,如果,你把 時(shí)  換成 '0' 的話,編譯應(yīng)該是能通過(guò)的。 他會(huì)把它翻 ...

大概明白你的意思。主要是這是別人做的例程,應(yīng)該是在他的系統(tǒng)中能夠通過(guò)。關(guān)鍵是這種寫(xiě)漢字的方法非常方便,一句 “OLED_ShowCHinese(12*8,0,"時(shí)",1); ”,把你要寫(xiě)的漢字放進(jìn)去就行了它自己去查找不用我再去查編碼。因此 XC8 能夠支持更好,若不能,能夠找到能支持的編譯器也行。謝謝!
回復(fù)

使用道具 舉報(bào)

21#
ID:967119 發(fā)表于 2021-11-14 22:58 | 只看該作者
xhaity 發(fā)表于 2021-11-14 14:04
你用的是什么開(kāi)發(fā)平臺(tái)呢,是不是MICROCHIP 的MPLAB X IDE,  MPLAB X IDE 菜單tool->option->Embedded->Gene ...

環(huán)境:proteus V8.9 , XC8 V1.31    謝謝!
回復(fù)

使用道具 舉報(bào)

22#
ID:967119 發(fā)表于 2021-11-14 23:08 | 只看該作者
本帖最后由 cczjw 于 2021-11-14 23:26 編輯
xhaity 發(fā)表于 2021-11-14 14:04
你用的是什么開(kāi)發(fā)平臺(tái)呢,是不是MICROCHIP 的MPLAB X IDE,  MPLAB X IDE 菜單tool->option->Embedded->Gene ...

我將 struct hzk{uchar hzk_2[2],........}; 的 uchar 改為 uint 也不行。
回復(fù)

使用道具 舉報(bào)

23#
ID:967119 發(fā)表于 2021-11-14 23:10 | 只看該作者
Y_G_G 發(fā)表于 2021-11-14 14:26
看一下數(shù)據(jù)手冊(cè),有沒(méi)有其它辦法,沒(méi)有的話,就只能輸入代碼了
GB2312是漢字字庫(kù),說(shuō)白了就是中國(guó)
芯片廠商 ...

我再試試其它編譯器看是否編譯器的問(wèn)題。
回復(fù)

使用道具 舉報(bào)

24#
ID:967119 發(fā)表于 2021-11-15 17:12 | 只看該作者
其實(shí)它翻譯成么并不重要,只要它在這兩個(gè)文件中對(duì)這個(gè)索引字( “時(shí)”.....) 都用相同的規(guī)則翻譯(這個(gè)應(yīng)該能保證)就能起到索引的作用。


回復(fù)

使用道具 舉報(bào)

25#
ID:624769 發(fā)表于 2021-11-15 17:33 | 只看該作者
cczjw 發(fā)表于 2021-11-15 17:12
其實(shí)它翻譯成么并不重要,只要它在這兩個(gè)文件中對(duì)這個(gè)索引字( “時(shí)”.....) 都用相同的規(guī)則翻譯(這個(gè)應(yīng)該 ...

所以說(shuō),既然無(wú)所謂翻譯成什么,
那么:
#define        "時(shí)"        0x4712
或者
#define        "時(shí)"        0x47,0x12

讓編譯過(guò)去,不好么?
回復(fù)

使用道具 舉報(bào)

26#
ID:967119 發(fā)表于 2021-11-15 18:16 | 只看該作者
這個(gè)好像不能用#define,宏名( "時(shí)" )必須以字母開(kāi)頭樣?而且如果這樣,用到的每個(gè)漢字都得再查或編一個(gè)代碼,這沒(méi)達(dá)到省事的初衷。


回復(fù)

使用道具 舉報(bào)

27#
ID:373388 發(fā)表于 2021-11-20 11:15 | 只看該作者
cczjw 發(fā)表于 2021-11-14 23:08
我將 struct hzk{uchar hzk_2[2],........}; 的 uchar 改為 uint 也不行。

我試了一下,uchar改為uint是可以的啊
struct hzk
{
    unsigned int hzk1;
    unsigned char hzk4[4];
};
struct hzk const hzkk[] = {"時(shí)" ,1,2,3,4,"好",5,6,7,8};
回復(fù)

使用道具 舉報(bào)

28#
ID:967119 發(fā)表于 2021-11-28 13:38 | 只看該作者
xhaity 發(fā)表于 2021-11-20 11:15
我試了一下,uchar改為uint是可以的啊
struct hzk
{

哦,我試試呢。謝謝!
回復(fù)

使用道具 舉報(bào)

29#
ID:967119 發(fā)表于 2021-11-28 13:45 | 只看該作者
xhaity 發(fā)表于 2021-11-20 11:15
我試了一下,uchar改為uint是可以的啊
struct hzk
{

我這還是報(bào)錯(cuò)。proteus V8.9   C編譯器 XC8 V1.31


回復(fù)

使用道具 舉報(bào)

30#
ID:401564 發(fā)表于 2021-11-28 14:06 | 只看該作者
cczjw 發(fā)表于 2021-11-28 13:45
我這還是報(bào)錯(cuò)。proteus V8.9   C編譯器 XC8 V1.31

這都半個(gè)月了,還在糾結(jié)這個(gè)"漢字"?
有這時(shí)間,我早就自己寫(xiě)好一個(gè)屬于自己的OLED代碼了,自己去寫(xiě)代碼,更能加深理解,也能從別人的代碼中得到更好的經(jīng)驗(yàn)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 99久久精品免费看国产免费软件 | 一级片在线免费播放 | 一级毛片免费 | 国产婷婷精品av在线 | 久久精品性视频 | 黄一级| 中文字幕第一页在线 | 91精品国产综合久久婷婷香蕉 | 在线观看欧美日韩视频 | 亚洲欧美一区二区三区情侣bbw | 国产精品久久久久久52avav | 天天碰夜夜操 | 天天拍天天操 | 91视频免费 | 美美女高清毛片视频免费观看 | 毛片一区二区 | 国产女人与拘做受免费视频 | 亚洲一区二区三区在线视频 | 求个av网址 | aaaaa毛片| 日本天天操 | 黄色一级毛片免费看 | 国产精品视频免费观看 | 青青草一区二区三区 | 国产亚洲欧美另类一区二区三区 | 亚洲精品久久久一区二区三区 | 欧日韩在线观看 | 91视频免费黄 | 久久一区二区三区电影 | 国产精品一区二区三区四区 | 91不卡在线 | 久久精品免费 | 人人九九精| 亚洲欧美综合精品久久成人 | 久久av一区二区三区 | 男人的天堂亚洲 | 狠狠的操 | 四虎影院免费在线播放 | 色婷婷综合久久久久中文一区二区 | 国产精品福利网站 | 一区二区三区在线免费观看 |