主程序中添加了如下code,但屏幕就没有显示;其他画图和显示英文都正常,不知道哪位大神能给予解答,不胜感激!
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
GUI_Init();
//GUI_UC_SetEncodeUTF8();
//GUI_DispStringAt("1234567890ABCDEF",0,0);
GUI_SetBkColor(GUI_BLACK);
GUI_SetColor(GUI_WHITE);
GUI_UC_SetEncodeUTF8();
GUI_SetFont(&GUI_FontSONGTI24);
//GUI_SetFont(&GUI_FontGB_SONGTI16_CharInfo);
GUI_DispStringAt("温度",0,0);
//GUI_DispStringAt("XYZ:",0,16);
//GUI_FillCircle(60,30,15);
//GUI_DrawCircle(80,40,10);
//GUI_GotoXY(0,0);
//GUI_DrawLineTo(128,64);
STemWin_to_oled1106();
用STemWin提供的FontCvtST.exe生成温度两个汉字的文件如下。
/*********************************************************************
* SEGGER Microcontroller GmbH & Co. KG *
* Solutions for real time microcontroller applications *
* www.segger.com *
**********************************************************************
* *
* C-file generated by *
* *
* emWin Font Converter (ST) version 5.32 *
* Compiled Oct 8 2015, 11:58:55 *
* *
* (c) 1998 - 2015 Segger Microcontroller GmbH & Co. KG *
* *
**********************************************************************
* *
* Source file: SONGTI24.c *
* Font: 宋体 *
* Height: 24 *
* *
**********************************************************************
* *
* Initial font height: 24 *
* Range disabled: 0000 - FFFF *
* Read pattern file: D:\llqx\STM32\CODE project\GB_myfont.txt *
* *
**********************************************************************
*/
#include "GUI.h"
#ifndef GUI_CONST_STORAGE
#define GUI_CONST_STORAGE const
#endif
/* The following line needs to be included in any file selecting the
font.
*/
extern GUI_CONST_STORAGE GUI_FONT GUI_FontSONGTI24;
/* Start of unicode area <CJK Unified Ideographs> */
GUI_CONST_STORAGE unsigned char acGUI_FontSONGTI24_5EA6[ 66] = { /* code 5EA6 */
________,__X_____,________,
________,___XX___,________,
________,___XX___,___X____,
___XXXXX,XXXXXXXX,XXXXX___,
___X____,X______X,________,
___X____,_X_____X,X_______,
___X____,_X_____X,___X____,
___XXXXX,XXXXXXXX,XXXXX___,
___X____,_X_____X,________,
___X____,_X_____X,________,
___X____,_XXXXXXX,________,
___X____,_X_____X,________,
___X____,________,________,
__XX__XX,XXXXXXXX,XX______,
__XX____,_X______,X_______,
__X_____,_X_____X,________,
__X_____,__X___X_,________,
__X_____,___X_X__,________,
_X______,___XXX__,________,
_X______,_XX___XX,X_______,
X______X,X_______,XXXXXX__,
____XXX_,________,___X____};
GUI_CONST_STORAGE unsigned char acGUI_FontSONGTI24_6E29[ 60] = { /* code 6E29 */
__X_____,________,_X______,
___XX___,XXXXXXXX,XX______,
____X___,X_______,_X______,
________,X_______,_X______,
______X_,XXXXXXXX,XX______,
X_____X_,X_______,_X______,
_XX__X__,X_______,_X______,
__X__X__,X_______,_X______,
__X__X__,XXXXXXXX,XX______,
____X___,X_______,_X______,
____X___,________,________,
____X__X,XXXXXXXX,XXXX____,
____X__X,___X__X_,__X_____,
___X___X,___X__X_,__X_____,
XXXX___X,___X__X_,__X_____,
__XX___X,___X__X_,__X_____,
__XX___X,___X__X_,__X_____,
__XX___X,___X__X_,__X_____,
__XX___X,___X__X_,__X_X___,
__XXXXXX,XXXXXXXX,XXXXXX__};
GUI_CONST_STORAGE GUI_CHARINFO_EXT GUI_FontSONGTI24_CharInfo[2] = {
{ 22, 22, 1, 1, 24, acGUI_FontSONGTI24_5EA6 } /* code 5EA6 */
,{ 22, 20, 1, 2, 24, acGUI_FontSONGTI24_6E29 } /* code 6E29 */
};
GUI_CONST_STORAGE GUI_FONT_PROP_EXT GUI_FontSONGTI24_Prop2 = {
0x6E29 /* first character */
,0x6E29 /* last character */
,&GUI_FontSONGTI24_CharInfo[ 1] /* address of first character */
,(GUI_CONST_STORAGE GUI_FONT_PROP_EXT *)0 /* pointer to next GUI_FONT_PROP_EXT */
};
GUI_CONST_STORAGE GUI_FONT_PROP_EXT GUI_FontSONGTI24_Prop1 = {
0x5EA6 /* first character */
,0x5EA6 /* last character */
,&GUI_FontSONGTI24_CharInfo[ 0] /* address of first character */
,&GUI_FontSONGTI24_Prop2 /* pointer to next GUI_FONT_PROP_EXT */
};
GUI_CONST_STORAGE GUI_FONT GUI_FontSONGTI24 = {
GUI_FONTTYPE_PROP_EXT /* type of font */
,24 /* height of font */
,24 /* space of font y */
,1 /* magnification x */
,1 /* magnification y */
,{&GUI_FontSONGTI24_Prop1}
,21 /* Baseline */
,11 /* Height of lowercase characters */
,16 /* Height of capital characters */
};
问题分析:
今天找到原因了应该是下面设置没有选UTF-8导致
因为我把源代码中的“温度”修改成UTF-8代码就能显示汉字,具体没有修改编译设置,因为我代码中需要用到非UTF-8方式,否则无法通过,等以后有机会再验证,目前只是测试一下功能