![]() |
發布時間: 2024-1-15 23:55
正文摘要:單片機nrf51822,在移植stm32lcd的例程中發現程序報錯,報錯顯示如下 .\Peripheral\inc\FONT.h(446): error: #144: a value of type "char [4]" cannot be used to initialize an entity of type ... |
forcexda 發表于 2024-1-20 22:05 還沒成功么 |
你這里不同字號用了不同的函數,那么字體的字節數就固定了,但函數里確還要計算字節數,既然調試有問題,就把函數盡量簡化吧 |
人中狼 發表于 2024-1-19 18:51 可是這個例程的字庫是調用存在rom里的字庫,不是外部字庫,根本沒有flash,我在stm32最小系統板上嘗試過是正常的 |
感覺還是你選的例程的問題,你選的例程是從外部字庫芯片取字體數據,并不適合你現在這種字庫的調用方式 |
forcexda 發表于 2024-1-18 19:15 你改成GB2312,把project清空一遍,中文重新打一遍,然后重新編譯下載,有stlink的話,最好是仿真看看哪一步出了問題 |
forcexda 發表于 2024-1-18 15:16 拍個效果圖看看,我看代碼沒看出有啥問題。另外你用utf-8的話,應該是無法顯示才對啊 |
yzw846562238 發表于 2024-1-18 14:14 不刷圖片和其他文字的話,字符出來還是有問題,主要是間距問題 |
forcexda 發表于 2024-1-17 19:36 容我看看 |
人中狼 發表于 2024-1-18 10:55 沒有哦,這里只做了移植,沒有改過漢字部分的代碼 |
好好參考一下原來的例程吧,感覺你把漢字顯示部分自己改復雜了 |
yzw846562238 發表于 2024-1-17 13:01 似乎不行,雖然可以顯示了,但是顯示還是不算正常,無法正確顯示字符間距 |
yzw846562238 發表于 2024-1-17 13:01 剛才發現,也有gb2312的鍋,必須把gb2312改成utff-8,不然字符不顯示,大佬這個字符編碼有沒有萬金油的那種,就是所有的字符都可以用的那種【捂臉哭】,有點打腦闊 |
yzw846562238 發表于 2024-1-17 13:01 大佬,我順著你的思路,把unsigned char Index[2]; 改成char Index[4];居然編譯通過了,然后正常顯示字符,但是我還是沒明白為什么[笑哭],大佬你看一下代碼,給我指點一下吧 |
yzw846562238 發表于 2024-1-17 13:01 代碼我打包上傳了,麻煩大佬幫我看看,ide用的是keil,版本5.23 |
464.4 KB, 下載次數: 4
forcexda 發表于 2024-1-16 21:18 "unsigned char [2]" "???",0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10, 感覺是你的中文被解析成了4字節,其實gb2312應該是2字節的。 |
forcexda 發表于 2024-1-16 21:18 是keil么,還是其他ide,代碼看著沒啥問題,要不把工程打包發上來看看? |
yzw846562238 發表于 2024-1-16 08:58 忘了加代碼了,那個結構體是這樣的 typedef struct { unsigned char Index[2]; unsigned char Msk[32]; }typFNT_GB16; const typFNT_GB16 tfont16[]={ "中",0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10, 0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,/*"中",0*/ "景",0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x80,0x00,0xFF,0x7F,0x00,0x00, 0xF8,0x0F,0x08,0x08,0x08,0x08,0xF8,0x0F,0x80,0x00,0x84,0x10,0xA2,0x20,0x40,0x00,/*"景",1*/ "園",0x00,0x00,0xFE,0x3F,0x02,0x20,0xF2,0x27,0x02,0x20,0x02,0x20,0xFA,0x2F,0x22,0x21, 0x22,0x21,0x22,0x21,0x12,0x29,0x12,0x29,0x0A,0x2E,0x02,0x20,0xFE,0x3F,0x02,0x20,/*"園",2*/ "電",0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F, 0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x50,0x80,0x40,0x80,0x40,0x00,0x7F,/*"電",3*/ "子",0x00,0x00,0xFE,0x1F,0x00,0x08,0x00,0x04,0x00,0x02,0x80,0x01,0x80,0x00,0xFF,0x7F, 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,/*"子",4*/ }; |
yzw846562238 發表于 2024-1-16 08:58 是GB2312,我需要修改成UTF-8嗎,大佬經驗好豐富,一眼就看出來是GB2312編碼格式了,麻煩大佬細說一下,我還是沒明白應該怎么修改 |
你用的keil?中文編碼格式用的是GB2312嗎?typFNT_GB16這個結構體類型定義的可能存在問題,在這個單片機編譯器上不能這么寫 |