更多内容请参考
《【野火®】零死角玩转STM32—F103-MINI》
显示要求:
显示姓名
显示一串数字
1.姓名中文的点阵(16*16)
由于程序并不需要显示所有的中文,所以将对应需要的文字添加到程序就可以了。
本过程显示的中文内容是哈莉特,需要从中文点阵字库中找到对应的点阵表示。
2.程序代码
哈莉特的存储代码
"哈",0x00,0x40,0x00,0x40,0x00,0xA0,0x78,0xA0,0x49,0x10,0x49,0x08,0x4A,0x0E,0x4D,0xF4,
0x48,0x00,0x48,0x00,0x7B,0xF8,0x4A,0x08,0x02,0x08,0x02,0x08,0x03,0xF8,0x02,0x08,
"莉",0x04,0x40,0x04,0x44,0xFF,0xFE,0x04,0x40,0x06,0x08,0x78,0x08,0x08,0x48,0x08,0x48,
0xFF,0x48,0x08,0x48,0x1C,0x48,0x1A,0x48,0x2A,0x48,0x48,0x08,0x88,0x28,0x08,0x10,
"特",0x10,0x40,0x10,0x40,0x50,0x48,0x53,0xFC,0x7C,0x40,0x50,0x44,0x97,0xFE,0x18,0x10,
0x30,0x10,0xD7,0xFE,0x11,0x10,0x10,0x90,0x10,0x90,0x10,0x10,0x10,0x50,0x10,0x20,
实现显示代码
void TEST_MainPage(void)
{
GUI_ShowString(28,0,"Harriet",16,1);//英文姓名
GUI_ShowCHinese(28,20,16,"哈莉特",1);//中文姓名
GUI_ShowString(4,48,"631807060517",16,1);//数字详细
delay_ms(1500);
delay_ms(1500);
}
main函数
int main(void)
{
delay_init(); //延时函数初始化
OLED_Init(); //初始化OLED
OLED_Clear(0); //清屏(全黑)
while(1)
{
TEST_MainPage(); //界面显示
}
}
本过程主要是对应字库的一个了解,以及怎么实现将点阵格式转换成十六进制格式。出来了给出的几个中文的点阵之外,其他的显示也都是依据点阵进行的存储。其实,整个显示屏也是一个点阵,显示过程就是将显示屏整个点阵中的每个小点进行改变,从而实现显示。
程序完整代码
百度网盘分享链接
https://pan.baidu.com/s/1gMCljDEFuVtfhPN38MX9dA
提取码:bphx