网站首页 > 编程文章 正文
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元领取:扫码进群领资料
猜你喜欢
- 2024-10-24 全瓷牙贴面为什么要取牙模?(全瓷牙 贴面)
- 2024-10-24 《楚简老子通读》高清图版文字横排电子书简繁体区别
- 2024-10-24 正点原子开拓者FPGA开发板资料连载第二十章 VGA字符显示实验
- 2024-10-24 Arduino入门 第五节 摇摇棒(arduinops2摇杆)
- 2024-10-24 用STM32做了个电子秤,成本仅两位数,精度高!解析一下原理
- 2024-10-24 OLED(0.96寸)如何取模(oled模块使用手册)
- 2024-10-24 12864液晶屏是怎么显示图片的?
- 2024-10-24 「专升本信息技术」计算机基础知识单选题集 (12)
- 2024-10-24 基于前人经验,为MM32L073单键胸牌DS3231时钟配上3D打印外壳
- 2024-10-24 复合基台水平取模流程--口扫(复合基台的应用)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)