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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

外部字庫芯片GT32L32S0140的移植

作者:日照北京   來源:會員上傳   點擊數:  更新時間:2014年05月20日   【字體:

經過幾天的努力終于移植成功了,現把遇到的問題記錄下來。

一步一步來,

1、先做通硬件,和驅動,自己動手找到一塊舊板子,把GT32L32焊接到板子上,連接到主板的spi2端口上。安裝網上的步驟把驅動字庫移植過來。先運 行一下,看會不會出漢字呢?。。。。。。自然不可能,期望值太高了。接下來開始找問題,發現字庫芯片的地址計算有問題。趕緊修正,再次測試,讀出了字庫信 息。為了驗證讀出的是否正確,手工將數據翻譯成二進制碼,在字模上點出來,哇!居然正確,不可思議。

2、將驅動移到到ucgui上。先ucgui上先顯示一下試試,不要異想天開,路需要自己走出來,山需要自己劈開。下面開始查找問題,經過檢查,發現字顯 示的位置不對,x=-139了,如果改x=10,漢字就顯示出來了,說明坐標不對。坐標又是從哪里來呢?經過仔細檢查,找到了函數

最關鍵語句  GUICharP.c  中 
int GUIPROP_GetCharDistX(U16P c)
{
  const GUI_FONT_PROP GUI_UNI_PTR * pProp = GUIPROP_FindChar(GUI_Context.pAFont->p.pProp, c);
  return (pProp) ? (pProp->paCharInfo + (c-pProp->First))->XSize * GUI_Context.pAFont->XMag : 0;
}

有這個(c-pProp->First)。

所以需要把移植的字庫

GUI_FLASH const GUI_CHARINFO GUI_FontHZ16_CharInfo[] = { }數組里復制93個。

 

 

再次運行,美麗的漢字顯示出來了! 大功告成,哈哈哈,大笑一下。

外部字庫移植成功后,發現一個缺點,在使用外部字庫里的 ASC字符的時候,出現一個上一個下,歪歪扭扭。后分析可能是需要在字體庫里定義GUI_CHARINFO的寬度吧,也可能不是。

 


決定采用系統里的字庫,

GUI_FLASH  const GUI_FONT_PROP GUI_FontHZ16_Prop0020= {
      0x0020,
      0x007f,
      &GUI_CharInfo_Font16ASCII[0],  // 對于ASC碼字符,采用系統內的16號字。不用芯片上的。
      (void *)&GUI_FontHZ16_Propa1a1
};

在第三個參數是指向系統的字庫信息索引。

并且定義了粗體字。字庫移植完成。


 

以后有空打算加上拼音輸入法:初步構想是:

在軟件里定義一個數組  pyArr{“a”,字庫的地址,a拼音的字數},。。。{“ai”,字庫的地址,ai拼音的字數}。。。

在字庫中自定義a拼音的漢字區位碼,ai的區位碼......所有漢字的區位碼保存在字庫的一個空間中。

在軟件中輸入一個拼音,比如:“bo”的時候,在數組pyArr中找到拼音的 記錄,根據字庫地址和拼音字數,取出這一系列的漢字區位碼放到數組  GB[]中,這樣得到區位碼后,再通過系統顯示漢字。

關閉窗口

相關文章

主站蜘蛛池模板: 精品国产乱码久久久久久中文 | 国产成人av一区二区三区 | 亚洲视频在线播放 | 精品久久久久久亚洲国产800 | 黑人巨大精品欧美一区二区免费 | 欧美精品久久久久久 | 久久中文字幕一区 | 在线观看视频一区 | 天天爱天天操 | 日韩和的一区二在线 | 国产一区二区三区在线免费观看 | 久久精品久久综合 | 亚洲xxxxx| 欧美日本一区 | 性福视频在线观看 | 9久久精品 | 亚洲欧美日韩精品久久亚洲区 | 人人干人人舔 | 一区二区中文字幕 | 日日摸夜夜添夜夜添特色大片 | 国产情品| 欧美日韩在线视频观看 | 国产精品亚洲成在人线 | 成人福利电影 | 午夜电影福利 | 国产欧美日韩综合精品一 | 毛色毛片免费看 | 久久久久久黄 | 欧美福利 | 成人小视频在线观看 | 激情91| 视频一二三区 | 在线看日韩 | 国产色在线 | 亚洲免费人成在线视频观看 | 国产成人a亚洲精品 | 欧美美女一区二区 | 色吊丝2 | 欧美日韩精品免费观看 | 免费大黄视频 | 国产精品电影网 |