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