程序员开发实例大全宝库

网站首页 > 编程文章 正文

STM32+OLED屏显示字符串、汉字、图片(二)

zazugpt 2024-10-24 19:33:55 编程文章 22 ℃ 0 评论


1.制作字库

字符集:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

要想屏幕上显示字符,需要相应的字库,现在先做一个字库。

打开取模软件pctolcd2002完美版,再点击选项,配置如下所选,点击确定。

点阵格式:阴码字体亮,阳码字体不亮

字符走向:逆向低位在前,顺向高位在前(主要看驱动IC的编码格式)、

取模方式:指字模图形的扫描方向

输出数制:生成字模的数的进制

每行显示数据:生成数组的大小,字符的长(页)x字符的宽(如8*16字体,2页*8列 = 16;如12*24字体,3页*12列 = 36;如16*32字体,4页*16列 = 64)

选择字库字体大小,最好选择8的倍数,因为64行已经分为8页(每页8行),如果不是8的倍数,就会显示到其他页去,操作会变得麻烦一些。


自命名字库名称

一个8x16的英文字库就完成了,字符在字库中的存取是二维数组Ascii_8*16[95][16];就拿字符 ' A ' 来说,字符 ' A ' 存在Ascii_8*16[33][0] ~ Ascii_8*16[33][16]之间

生成其他大小的字库

生成12*24的字库,首先要调节字体大小,其次要调节每行显示数据:24/8=3页,3*12=36,所以每行显示数据的点阵设置为36,最后,点击生成字模,复制粘贴到OLED_Fonnt.h文件中


三种大小不同的字库

字库中存取了三种字体,第一个比较特殊(在网上找的,但不完整),自己尝试着生成,发现自己生成的字体显示不清晰,如果有朋友有完整的,请@我分享我一份,其他两个是自己生成的


2.显示一个字符

显示字符串从一个字符开始,字符串只不过是一串字符,完成显示一个字符后再循环多次,就可以完成字符串显示了,字符显示先定义起始光点,再把字库中的数据写入,即可完成。就拿8*16字体来说,8列*16行(2页),所以要写2页(i < 2),字宽写8列(j < 8),第一页设置起始光点写入数据,第二页再设置起光点偏移一位( + i),因为字宽是8,数据再偏移八位( + i*8),完成显示

/**
  * @brief  OLED显示一个字符
  * @param  Line 行位置
  * @param  Column 列位置
  * @param  Fontsize 字体大小
  * @param  Char 要显示的一个字符,
  * @retval 无
  */
void OLED_ShowChar(uint8_t Line, uint8_t Column, uint16_t Fontsize, char Char)
{      	
	uint8_t i, j;
	
	switch(Fontsize) {
		case 8:	{
			OLED_SetCursor(Line, Column);		
			for (j=0; j<6; j++) {//字宽为6
				OLED_Write_Data(Ascii_6x8[Char-' '][j]);			
			}
			break;
		}
		case 16: {
			for(i=0; i<2; i++) {
				OLED_SetCursor(Line+i, Column);	//循环2次显示上/下半部分内容	
				for (j=0; j<8; j++) {//字宽为8
					OLED_Write_Data(Ascii_8x16[Char-' '][j+i*8]);			
				}
			}
			break;
		}
		case 24: {
			for(i=0; i<3; i++) {
				OLED_SetCursor(Line+i, Column);	//循环3次显示上/中/下半部分内容	
				for (j=0; j<12; j++) {//字宽为12
					OLED_Write_Data(Ascii_12x24[Char-' '][j+i*12]);			
				}
			}
			break;
		}
	}
}

完整资料可进群免费领取!!!

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。点击下方链接,0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

点击这里找小助理0元领取:扫码进群领资料

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表