999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-07-02 08:42:48
單片機與嵌入式系統應用 2015年10期

趙 云

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

引 言

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

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

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

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

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

圖1 GT30L32S4W方案框圖

1 GT30L32S4W和STM32F103ZET6的硬件接口

1.1 簡述GT30L32S4W

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

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

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

1.2 GT30L32S4W連續讀出單個漢字字模

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

2 GT30L32S4W和emWin的軟件接口

2.1 emWin的字庫接口

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

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

③加入新字體還需要修改em Win圖形庫中提供的頭文件GUI.H和GUI_TYPE.H,把新字體的顯示方法指向GUIPROP_X_DispChar()函數,這部分的工作在參考文獻[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點陣漢字需要連續24個字節,32×32點陣需要連續128個字節。如圖3所表示,一個24×24漢字需要3×24共72個字節的存儲長度,讀取字模的時候需要連續讀取72個字節,保存到一個數組里,再等待下一步顯示處理。

圖3 24×24的漢字

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

表1 GT30L32S4W等寬漢字地址表

結 語

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

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

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

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

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

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

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

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

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

主站蜘蛛池模板: 3344在线观看无码| 在线播放国产99re| 亚洲无码视频图片| 日本成人精品视频| 日本黄色不卡视频| 99久久99视频| 97亚洲色综久久精品| 国产网站免费观看| 三区在线视频| 国产综合另类小说色区色噜噜| 欧美啪啪网| 91麻豆精品国产高清在线| 中文字幕有乳无码| 国产精品污视频| 免费看美女毛片| 久久精品人妻中文系列| 中文字幕2区| 日韩黄色精品| 欧美成a人片在线观看| 女人爽到高潮免费视频大全| 热久久这里是精品6免费观看| 欧美区日韩区| 毛片网站免费在线观看| 欧美一级高清视频在线播放| 青青草原偷拍视频| 国产精品林美惠子在线观看| 欧美视频在线播放观看免费福利资源| 国产精品色婷婷在线观看| 亚洲精品片911| 99草精品视频| 天天综合色网| 亚洲男人的天堂久久精品| 国产视频 第一页| 国产玖玖视频| 91福利免费视频| 男女精品视频| 国产95在线 | 欧美一级视频免费| 青青草国产免费国产| 欧美午夜精品| 国产精品3p视频| 亚洲日韩AV无码精品| 国产打屁股免费区网站| 永久免费av网站可以直接看的| www.亚洲一区| 四虎精品国产AV二区| 欧美成人区| 国产成人综合日韩精品无码首页| 久久伊人久久亚洲综合| 久久美女精品| 亚洲视频黄| 精品無碼一區在線觀看 | 中文无码精品A∨在线观看不卡| 全午夜免费一级毛片| 免费看美女自慰的网站| 一区二区影院| 2020最新国产精品视频| 亚洲欧美成aⅴ人在线观看| 国产综合网站| 国产三级a| 自慰高潮喷白浆在线观看| а∨天堂一区中文字幕| 国产精品免费p区| 四虎成人免费毛片| 91激情视频| 性网站在线观看| 欧美在线国产| 国产精品免费p区| 97se亚洲综合在线| 91人人妻人人做人人爽男同| 国产在线八区| 暴力调教一区二区三区| 一级毛片免费观看久| 熟妇丰满人妻av无码区| 91福利在线看| 香蕉伊思人视频| 成人亚洲天堂| 色妞www精品视频一级下载| 91精品网站| 久久精品免费国产大片| 免费观看国产小粉嫩喷水| 日韩区欧美国产区在线观看|