經(jīng)過(guò)幾天的努力終于移植成功了,現(xiàn)把遇到的問(wèn)題記錄下來(lái)。
一步一步來(lái),
1、先做通硬件,和驅(qū)動(dòng),自己動(dòng)手找到一塊舊板子,把GT32L32焊接到板子上,連接到主板的spi2端口上。安裝網(wǎng)上的步驟把驅(qū)動(dòng)字庫(kù)移植過(guò)來(lái)。先運(yùn) 行一下,看會(huì)不會(huì)出漢字呢?。。。。。。自然不可能,期望值太高了。接下來(lái)開(kāi)始找問(wèn)題,發(fā)現(xiàn)字庫(kù)芯片的地址計(jì)算有問(wèn)題。趕緊修正,再次測(cè)試,讀出了字庫(kù)信 息。為了驗(yàn)證讀出的是否正確,手工將數(shù)據(jù)翻譯成二進(jìn)制碼,在字模上點(diǎn)出來(lái),哇!居然正確,不可思議。
2、將驅(qū)動(dòng)移到到ucgui上。先ucgui上先顯示一下試試,不要異想天開(kāi),路需要自己走出來(lái),山需要自己劈開(kāi)。下面開(kāi)始查找問(wèn)題,經(jīng)過(guò)檢查,發(fā)現(xiàn)字顯 示的位置不對(duì),x=-139了,如果改x=10,漢字就顯示出來(lái)了,說(shuō)明坐標(biāo)不對(duì)。坐標(biāo)又是從哪里來(lái)呢?經(jīng)過(guò)仔細(xì)檢查,找到了函數(shù)
最關(guān)鍵語(yǔ)句
int GUIPROP_GetCharDistX(U16P c)
{
}
有這個(gè)(c-pProp->First)。
所以需要把移植的字庫(kù)
GUI_FLASH const GUI_CHARINFO GUI_FontHZ16_CharInfo[] = { }數(shù)組里復(fù)制93個(gè)。
再次運(yùn)行,美麗的漢字顯示出來(lái)了! 大功告成,哈哈哈,大笑一下。
外部字庫(kù)移植成功后,發(fā)現(xiàn)一個(gè)缺點(diǎn),在使用外部字庫(kù)里的 ASC字符的時(shí)候,出現(xiàn)一個(gè)上一個(gè)下,歪歪扭扭。后分析可能是需要在字體庫(kù)里定義GUI_CHARINFO的寬度吧,也可能不是。
決定采用系統(tǒng)里的字庫(kù),
GUI_FLASH
};
在第三個(gè)參數(shù)是指向系統(tǒng)的字庫(kù)信息索引。
并且定義了粗體字。字庫(kù)移植完成。
以后有空打算加上拼音輸入法:初步構(gòu)想是:
在軟件里定義一個(gè)數(shù)組
在字庫(kù)中自定義a拼音的漢字區(qū)位碼,ai的區(qū)位碼......所有漢字的區(qū)位碼保存在字庫(kù)的一個(gè)空間中。
在軟件中輸入一個(gè)拼音,比如:“bo”的時(shí)候,在數(shù)組pyArr中找到拼音的 記錄,根據(jù)字庫(kù)地址和拼音字?jǐn)?shù),取出這一系列的漢字區(qū)位碼放到數(shù)組