1.查询想显示的汉字的gbk码,在网上随便找一个在线查询网站即可。
如我想显示中国,则查询中的gbk码为D6D0,国的gbk码为B9FA,就更改fontx的值,fontx1[0]为前两位d6,fontx1[1]为后两位d0。
fontx1[0]=0xd6;
fontx1[1]=0xd0;
Show_Font(152,220,fontx1,24,0); //中
fontx2[0]=0xb9;
fontx2[1]=0xfa;
Show_Font(152+25,220,fontx2,24,0); //国
2.显示位置。根据喜好,想放哪放哪,152指横向坐标,220指纵向坐标,24指字体大小,12、16、24均可,最后的0表示字体正常显示,如果想叠加显示改为1。
代码如下
int main(void)
{
u8 fontx1[2];//gbk码
u8 fontx2[2];//gbk码
u8 fontx3[2];//gbk码
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
usmart_dev.init(72); //初始化USMART
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init(); //初始化按键
LCD_Init(); //初始化LCD
W25QXX_Init(); //初始化W25Q128
my_mem_init(SRAMIN); //初始化内部内存池
exfuns_init(); //为fatfs相关变量申请内存
f_mount(fs[0],"0:",1); //挂载SD卡
f_mount(fs[1],"1:",1); //挂载FLASH.
while(font_init()) //检查字库
{
UPD:
LCD_Clear(WHITE); //清屏
POINT_COLOR=RED; //设置字体为红色
LCD_ShowString(30,50,200,16,16,"WarShip STM32");
while(SD_Init()) //检测SD卡
{
LCD_ShowString(30,70,200,16,16,"SD Card Failed!");
delay_ms(200);
LCD_Fill(30,70,200+30,70+16,WHITE);
delay_ms(200);
}
LCD_ShowString(30,70,200,16,16,"SD Card OK");
LCD_ShowString(30,90,200,16,16,"Font Updating...");
LCD_ShowString(30,110,200,16,16,"Font Update Success! ");
delay_ms(1500);
LCD_Clear(WHITE);//清屏
}
fontx1[0]=0xd6;
fontx1[1]=0xd0;
Show_Font(152,220,fontx1,24,0); //中
fontx2[0]=0xb9;
fontx2[1]=0xfa;
Show_Font(152+25,220,fontx2,24,0); //国
}
因为我做实验显示的是自己的名字,所以实验结果就不放出来了。