• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      中文字庫芯片GT30L32S4W在emWin圖形庫中的應用

      2015-07-02 08:42:48
      關鍵詞:字庫源代碼高通

      趙 云

      (桂林電器科學研究院有限公司,桂林541004)

      引 言

      隨著嵌入式系統(tǒng)已滲透入社會生活的很多領域(如電子消費品、醫(yī)療儀器、工業(yè)環(huán)境),無論是普通消費者還是商業(yè)用戶,都期待更友好的UI界面體驗。emWin圖形庫是目前廣泛應用于嵌入式系統(tǒng)界面開發(fā)的中間件,但em-Win中不能直接使用中文,且只提供庫文件,不開放源代碼,使通過修改emWin源代碼實現(xiàn)中文支持非常困難。如何在emWin中實現(xiàn)中文界面顯示,一直是嵌入式GUI設計中關注的問題。

      常用的emWin支持中文的方法有兩種:

      ①用emWin提供的fontCvt工具生成特定的C語言格式的字庫代碼,加載在ROM空間供em Win調用,缺點是需要占用ROM資源。

      ②用第三方工具生成字庫文件,然后拷貝到SD卡或燒錄到Flash芯片,供em Win用文件系統(tǒng)方式調用,但用Flash需要額外燒錄,用SD卡又會拖慢顯示速度。

      本文的方案把GT30L32S4W字庫映射到emWin的字體顯示接口,使em Win支持中文顯示。這種方式可以避免額外對Flash的燒錄工作,降低使用第三方字庫的風險,也不需要占用MCU的ROM空間,用emWin做界面設計時,可直接調用GT30L32S4W內全部漢字資源,方案框圖如圖1所示。

      圖1 GT30L32S4W方案框圖

      1 GT30L32S4W和STM32F103ZET6的硬件接口

      1.1 簡述GT30L32S4W

      GT30L32S4W為上海高通(GOTOP)發(fā)布的字庫芯片,支持國標字符集GB2312(6 763個漢字),支持12×12、16×16、24×24、32×32四種點陣字型,總線接口為SPI,封裝為SOP8。

      該芯片與STM32F103ZET6的接口電路如圖2所示,可以借鑒參考文獻[3]給出的SPI時序要求,直接調用STM32的庫函數(shù)實現(xiàn)GT30L32S4W的SPI讀寫函數(shù)。

      圖2 STM32F103ZET6和GT30L32S4W硬件SPI1接口電路

      1.2 GT30L32S4W連續(xù)讀出單個漢字字模

      這里給出讀取以DST為首地址的連續(xù)no_bytes個字節(jié)的實現(xiàn)方法,讀取完成后,字模保存在GUI_Font-DataBuf[]數(shù)組,供下一步處理。

      2 GT30L32S4W和emWin的軟件接口

      2.1 emWin的字庫接口

      ①結構體GUI_p UC_API為em Win的字符編碼接口,emWin通過 GUI_UC_Set EncodeNone()函數(shù)調用了該接口,但是emWin圖形庫不開放源代碼,無法直接修改庫文件。對應的方法是打開UCGUI v3.98開源版本中提供的GUI_UC_EncodeNone.c文件,改寫里面的_GetChar-Code()、_GetCharSize()、_CalcSizeOfChar()、_Encode()這4個函數(shù),增加GB2312編碼的處理,然后把改動過的文件加入工程編譯,可以使GUI_p UC_API指向改動過的函數(shù),實現(xiàn)emWin對GB2312漢字的識別。

      ②emWin的字符顯示接口為GUIPROP_DispChar(),這個函數(shù)的功能是獲取字符字模,再執(zhí)行畫位圖的函數(shù)將字符顯示出來,該函數(shù)原型在UCGUI v3.98開源版本的GUICharP.c文件中。修改的方法是參考GUIPROP_DispChar()源代碼,改寫為 GUIPROP_X_DispChar()函數(shù),在獲取字模時先區(qū)分英文和漢字,如果為漢字就調用高通字模定位算法,連續(xù)讀取一個漢字的字模,然后進行顯示處理。

      ③加入新字體還需要修改em Win圖形庫中提供的頭文件GUI.H和GUI_TYPE.H,把新字體的顯示方法指向GUIPROP_X_DispChar()函數(shù),這部分的工作在參考文獻[2]中有論述,具體源代碼可以借鑒參考文獻[6]。注意:emWin可以視為是開源的UC/GUI v3.98之后不開源的高級版本。

      2.2 高通字庫的通用字模的定位算法

      GT30L32S4W支持12×12、16×16、24×24、32×32四種點陣字型,由于參考文獻[2]、[3]和[4]給出不同點陣字型的計算方式不同,使用不方便。這里歸納出一套通用的字庫IC漢字地址計算方法:

      ①BaseAdd:一套點陣字體在GT30L32S4W芯片中的起始地址,例如16×16點陣的起始地址為0x2 C9D0。

      ②MSB:一個漢字的內部GB2312編碼為16位,MSB表示該漢字GB2312編碼的高8位。

      ③LSB:類似MSB,表示一個漢字GB2312編碼的低8位。

      ④FontByte:單個漢字的存儲長度,比如一個12×12點陣漢字需要連續(xù)24個字節(jié),32×32點陣需要連續(xù)128個字節(jié)。如圖3所表示,一個24×24漢字需要3×24共72個字節(jié)的存儲長度,讀取字模的時候需要連續(xù)讀取72個字節(jié),保存到一個數(shù)組里,再等待下一步顯示處理。

      圖3 24×24的漢字

      ⑤Address:由MSB和LSB組成的16位GB2312漢字在字庫IC芯片中的字節(jié)地址,如圖3中漢字“高”的GB2312碼為0xB8DF,拆開 MSB就是0xB8,LSB就是0xDF。表1為GT30L32S4W的漢字地址表,可以根據(jù)該表將參數(shù)代入定位算法得到某個漢字的字模位置。

      表1 GT30L32S4W等寬漢字地址表

      結 語

      本文提供了基于字庫芯片GT30L32S4W的em Win中文顯示方案。圖4所示為em Win調用中文字庫IC的實際效果,界面包括BUTTON控件、TEXT控件和DROPDOWN控件,均顯示正常。

      圖4 emWin調用中文字庫IC的實際效果

      該方案已應用在寶通公司的尿液分析儀上,證明了該方案對emWin有良好的兼容性。該方案使產品量產時免除了字庫燒錄和測試工序,減少了第三方字符生成軟件的風險,節(jié)省了Flash芯片成本,是一種值得推廣的嵌入式系統(tǒng)中文界面支持方案。此外,高通還提供多國語言的字庫芯片,參考該方案可以對emWin顯示日文、韓文做進一步研究。

      [1]SEGGER.emWin User&Reference Guide V5.28[EB/OL].[2015-03].www.segger.com.

      [2]李建紅,劉丹,徐展.基于UCGUI庫的外擴中文字庫研究與實現(xiàn)[J].計算機工程,2014,40(2):271-274.

      [3]高通科技.GT30L32S4W標準漢字字庫芯片用戶手冊V1.0[EB/OL].[2015-03].www.genitop.com.

      [4]馮月芹,湯小龍.高通字庫芯片GT23H32S4W的應用[J].單片機與嵌入式系統(tǒng)應用,2013(12):45-47.

      [5]陳新,蒲慶文.基于emWin圖形庫的電動汽車液晶儀表設計[J].儀表技術與傳感器,2013(7):105-110.

      [6]jdh99.在emWin中顯示字庫芯片GT23L24M0140的字模[EB/OL].[2015-03].http://blog.csdn.net/jdh99.

      猜你喜歡
      字庫源代碼高通
      人工智能下復雜軟件源代碼缺陷精準校正
      計算機仿真(2023年8期)2023-09-20 11:23:42
      基于TXL的源代碼插樁技術研究
      No.2 喜茶聯(lián)合漢儀字庫推出微型書和書簽
      軟件源代碼非公知性司法鑒定方法探析
      歷史轉折后的高通前執(zhí)行董事長
      世紀人物(2018年7期)2018-07-09 18:45:30
      某型號產品的字庫遷移優(yōu)化設計
      電子世界(2018年7期)2018-04-26 08:51:35
      揭秘龍湖產品“源代碼”
      外資力薦高通并購賽靈思對抗英特爾
      電子世界(2015年22期)2015-12-29 02:49:41
      高通24億美元收購芯片制造商CSR
      IT時代周刊(2015年9期)2015-11-11 05:51:53
      高通市場份額跌至47%
      IT時代周刊(2015年8期)2015-11-11 05:50:48
      霍邱县| 奈曼旗| 天祝| 铜鼓县| 甘孜| 鸡东县| 彭水| 秀山| 右玉县| 丰县| 宜君县| 桦南县| 莱西市| 海丰县| 祁门县| 平潭县| 东乌| 德令哈市| 涞水县| 海丰县| 乐亭县| 华坪县| 乌拉特中旗| 遂平县| 汪清县| 弋阳县| 元阳县| 菏泽市| 体育| 兴文县| 拉孜县| 新沂市| 明溪县| 松阳县| 陆川县| 嘉义县| 乐清市| 汉沽区| 额济纳旗| 通榆县| 辽宁省|