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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4643|回復: 1
打印 上一主題 下一主題
收起左側

Stm32使用Emwin顯示漢子的方法,不使用外部儲存

[復制鏈接]
跳轉到指定樓層
樓主
ID:242058 發(fā)表于 2020-2-7 18:26 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
EMWIN中顯示中文

該方法使用的FONTCVT工具生成子庫的方式,針對少量中文的顯示會很方便。
步驟一
:創(chuàng)建文本文檔并將需要支持的中文漢子輸入到文檔中。漢子是按照編碼來獲取的,所以相同漢子不需要重復輸入。如下圖所示:


步驟二:
修改文本文檔的編碼方式并保存,此處修改編碼方式使用的notepad++,修改為下圖的編碼格式(UCS-2-Little Endianb編碼)。編碼方式不對時,會出現(xiàn)下圖的提示,文件會導入失敗。修改完編碼格式后文件就準備就緒了。




步驟三:
下面進行字庫軟件的配置,打開FontCvt軟件按下圖進行設置顯示中文,Encodeing必須選擇"16 Bit UNICODE";字體選擇也必須是包含中文的(微軟雅黑、宋體等均可)。軟件打開后,默認包含所有文字。點擊“Edit-> Disable all characters”菜單,不包含任何字體。(Tips:白色背景為選中文字,灰色背景為未選中文件)








步驟四:
下面開始導入字庫文件,也就是步驟一、二產(chǎn)生的Txt文件。 回到FontCvtST.exe軟件,單擊“Edit->Read pattern file ...”后,選中txt文本文檔
(Tips:如果彈出“The following character codes found in ...”的對話框,是因為txt文檔的編碼方式?jīng)]有選擇對)


步驟五:
單擊“File -> Save As ...” 生成一個“yahei20.c”的文件,將該文件添加到我們的工程里。添加到工程后,如下圖所示,再c文件的開頭會有一個字庫文件extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei20;





步驟六:
使用字庫文件方法如下圖所示,有兩種情況,如果keil工程的編碼格式為UTF-8,此時想要顯示中文只需要直接輸入中文就可以調(diào)用,如下所示


  1. extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei20;  //聲明字體
  2. int main(void)
  3. {
  4.         SetSysClockInternal(); //使用內(nèi)部時鐘
  5.         SysTick_Init();
  6.         NVIC_Configuration();
  7.         PeriIO_Init();
  8.         OLED_Config();
  9.         I2C_GPIO_Init();
  10.         uart1_init(115200);
  11.         BME280_init();

  12.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//開啟CRC用于emwin
  13.         WM_SetCreateFlags(WM_CF_MEMDEV);
  14.         GUI_Init();
  15.         
  16.         GUI_SetFont(&GUI_Fontyahei20);
  17.         GUI_UC_SetEncodeUTF8();         
  18.         GUI_DispStringAt("壓強",0,20);  //通過keil軟件自己的編碼來顯示漢子
  19.         GUI_DispStringAt("溫度",20,20);
  20.         GUI_DispStringAt("濕度",40,20);
  21. }
復制代碼


如果keil工程的編碼格式不是UTF-8,想要顯示漢子,需要先通過U2C軟件得到漢子的UTF8編碼,然后通過編碼值來顯示漢子。比如想要顯示漢子“壓強”,新建文本文檔,輸入漢子“壓強”,保存文件為UTF-8格式,然后通過軟件U2C打開剛剛保存的文件,點擊轉換會在同路徑下生成一個同名的.c文件。然后點擊close。打開.c文件里面就是漢子對應的編碼值,如壓強生成的編碼值就是"\xe5\x8e\x8b\xe5\xbc\xba"。顯示漢子時只需要將上面的壓強漢子換成對應的編碼值即可,如下代碼所示








  1. extern GUI_CONST_STORAGE GUI_FONT GUI_Fontyahei20;  //聲明字體
  2. int main(void)
  3. {

  4.         SetSysClockInternal(); //使用內(nèi)部時鐘
  5.         SysTick_Init();
  6.         NVIC_Configuration();
  7.         PeriIO_Init();
  8.         OLED_Config();
  9.         I2C_GPIO_Init();
  10.         uart1_init(115200);
  11.         BME280_init();
  12.         
  13.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//開啟CRC用于emwin
  14.         WM_SetCreateFlags(WM_CF_MEMDEV);
  15.         GUI_Init();
  16.         
  17.         GUI_SetFont(&GUI_Fontyahei20);
  18.         GUI_UC_SetEncodeUTF8();
  19.         GUI_DispStringAt("\xe5\x8e\x8b\xe5\xbc\xba",0,20);  //通過編碼值顯示漢子,顯示壓強
  20. }
復制代碼



該說明使用工具如下,可以在附件中下載


clipboard.png (2.76 KB, 下載次數(shù): 64)

clipboard.png

工具.zip

241.89 KB, 下載次數(shù): 22, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:108573 發(fā)表于 2020-2-9 10:17 | 只看該作者
正在學習emwin,這種方式我在模擬器上測試了,確實很方便。謝謝樓主分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品大全 | 成人国产精品久久 | av毛片| 中文字幕 在线观看 | 毛片网站在线观看 | 国产日韩精品久久 | 国产91久久精品一区二区 | 欧美日韩亚洲视频 | 一区二区视频 | 欧美精品一区二区三区一线天视频 | 狠狠的干 | 91原创视频在线观看 | www.国产精 | 国产一区999| 狠狠干天天干 | 91在线网站 | 亚州av在线 | 久久国产精品久久久久久 | 久久精品国产一区二区 | 一区二区三区亚洲精品国 | 亚洲精品久久久久久久久久久 | 免费看欧美一级片 | av福利网 | 国产精品久久久久久久久 | 日韩在线不卡 | 先锋资源亚洲 | 国产精品欧美精品 | 国产成人av电影 | 久久男人| 欧美精品首页 | 高清久久久| 精品一区二区在线观看 | 国产视频一区二区三区四区五区 | 天天干天天干 | 美女视频网站久久 | 日本午夜网站 | 91精品国产一区二区在线观看 | 国产一区二区高清在线 | 老牛影视av一区二区在线观看 | 欧美精品一区二区三区在线播放 | 国产精品99久久久久久大便 |