熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時間: 2024-1-15 23:55
正文摘要:單片機(jī)nrf51822,在移植stm32lcd的例程中發(fā)現(xiàn)程序報(bào)錯,報(bào)錯顯示如下 .\Peripheral\inc\FONT.h(446): error: #144: a value of type "char [4]" cannot be used to initialize an entity of type ... |
forcexda 發(fā)表于 2024-1-20 22:05 還沒成功么 |
你這里不同字號用了不同的函數(shù),那么字體的字節(jié)數(shù)就固定了,但函數(shù)里確還要計(jì)算字節(jié)數(shù),既然調(diào)試有問題,就把函數(shù)盡量簡化吧 |
人中狼 發(fā)表于 2024-1-19 18:51 可是這個例程的字庫是調(diào)用存在rom里的字庫,不是外部字庫,根本沒有flash,我在stm32最小系統(tǒng)板上嘗試過是正常的 |
感覺還是你選的例程的問題,你選的例程是從外部字庫芯片取字體數(shù)據(jù),并不適合你現(xiàn)在這種字庫的調(diào)用方式 |
forcexda 發(fā)表于 2024-1-18 19:15 你改成GB2312,把project清空一遍,中文重新打一遍,然后重新編譯下載,有stlink的話,最好是仿真看看哪一步出了問題 |
forcexda 發(fā)表于 2024-1-18 15:16 拍個效果圖看看,我看代碼沒看出有啥問題。另外你用utf-8的話,應(yīng)該是無法顯示才對啊 |
yzw846562238 發(fā)表于 2024-1-18 14:14 不刷圖片和其他文字的話,字符出來還是有問題,主要是間距問題 |
forcexda 發(fā)表于 2024-1-17 19:36 容我看看 |
人中狼 發(fā)表于 2024-1-18 10:55 沒有哦,這里只做了移植,沒有改過漢字部分的代碼 |
好好參考一下原來的例程吧,感覺你把漢字顯示部分自己改復(fù)雜了 |
yzw846562238 發(fā)表于 2024-1-17 13:01 似乎不行,雖然可以顯示了,但是顯示還是不算正常,無法正確顯示字符間距 |
yzw846562238 發(fā)表于 2024-1-17 13:01 剛才發(fā)現(xiàn),也有g(shù)b2312的鍋,必須把gb2312改成utff-8,不然字符不顯示,大佬這個字符編碼有沒有萬金油的那種,就是所有的字符都可以用的那種【捂臉哭】,有點(diǎn)打腦闊 |
yzw846562238 發(fā)表于 2024-1-17 13:01 大佬,我順著你的思路,把unsigned char Index[2]; 改成char Index[4];居然編譯通過了,然后正常顯示字符,但是我還是沒明白為什么[笑哭],大佬你看一下代碼,給我指點(diǎn)一下吧 |
yzw846562238 發(fā)表于 2024-1-17 13:01 代碼我打包上傳了,麻煩大佬幫我看看,ide用的是keil,版本5.23 |
464.4 KB, 下載次數(shù): 4
forcexda 發(fā)表于 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字節(jié),其實(shí)gb2312應(yīng)該是2字節(jié)的。 |
forcexda 發(fā)表于 2024-1-16 21:18 是keil么,還是其他ide,代碼看著沒啥問題,要不把工程打包發(fā)上來看看? |
yzw846562238 發(fā)表于 2024-1-16 08:58 忘了加代碼了,那個結(jié)構(gòu)體是這樣的 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 發(fā)表于 2024-1-16 08:58 是GB2312,我需要修改成UTF-8嗎,大佬經(jīng)驗(yàn)好豐富,一眼就看出來是GB2312編碼格式了,麻煩大佬細(xì)說一下,我還是沒明白應(yīng)該怎么修改 |
你用的keil?中文編碼格式用的是GB2312嗎?typFNT_GB16這個結(jié)構(gòu)體類型定義的可能存在問題,在這個單片機(jī)編譯器上不能這么寫 |
Powered by 單片機(jī)教程網(wǎng)