在OLED上用大于126的ASCII码显示定制符号

news/2024/7/5 21:29:18 标签: ESP8266, 字体设计, OLED

OLED上用大于126的ASCII码显示定制符号

陈拓 2021/07/09-2021/07/09

1. 概述

在做嵌入式开发时我们经常会遇到显示非ASCII码符号的问题,比如摄氏温度符号或者一个充电的电池图标。而通常的字体库只能显示标准ASCII字符集的32-126个可打印字符。

在本文中我们将自定义符号添加到字库中ASCII码大于126的位置。

下面以摄氏温度符号℃为例进行说明。

字库采用Adafruit GFX格式。有关Adafruit GFX格式字库的详细说明见:

Adafruit GFX Library字体规范》

https://zhuanlan.zhihu.com/p/385486474

https://blog.csdn.net/chentuo2000/article/details/118369058

2. 在字库中添加大于126的ASCII码

2.1 准备图标位图数据

我们用.代表二进制0,用x代表二进制1。

为方便手工编码,加了2列冗余bit。

2.2 创建新的glyphs

  {  3682,  24,  26,  24,    2,  -25 },   // 0x7F 'Centigrade'

参数的设定方法晴参考Adafruit GFX Library字体规范》。

2.3 将新创建的符号添加到字库中

将新字符添加到《Adafruit GFX字体制作》

https://zhuanlan.zhihu.com/p/387949673

https://blog.csdn.net/chentuo2000/article/details/118609006

一文中创建的字库文件Digital_7_V420pt7b.h中。

  • 添加位图数据

在数组Digital_7_V420pt7bBitmaps[]最后添加位图数据:

  • 添加图形数据

在数Digital_7_V420pt7bGlyphs[]最后添加图形数据:

  • 修改Digital_7_V420pt7b

修改为:

 3. 在C程序中使用大于126的ASCII码

不能用键盘输入的ASCII码字符用转义符\输入,如下所示:

    char *text = (char*)"23.45 \x7F";

4. 显示效果

下图是ESP8266驱动0.96OLED显示屏的效果:

 

参考文档

  1. Creating Custom Symbol Fonts for Adafruit GFX Library
    https://learn.adafruit.com/creating-custom-symbol-font-for-adafruit-gfx-library/hardware-and-software-requirements
  2. 8 Bit GFXfonts
    https://sigmdel.ca/michel/program/misc/gfxfont_8bit_en.html


http://www.niftyadmin.cn/n/1733101.html

相关文章

Web设计新手应知道的10个锦囊妙计

摘要:你在网页设计所学到的大多数教训都来自工作经验。学习是一个反复持续的过程,并且没有比犯错更好的方式来获得知识。在本文中,我们将讨论10个重要并常规的技巧,这是每位Web设计师新手都应该知道。 在做网站时会遇到很多的问题…

Win10的Linux子系统Ubuntu安装图形界面

Win10的Linux子系统Ubuntu安装图形界面 陈拓 2021/07/25-2021/07/26 1. 概述 Win10的linux子系统Windows Subsystem for Linux(简称 WSL)之Ubuntu安装见文章: 《Win10启用Linux子系统安装Ubuntu》 https://zhuanlan.zhihu.com/p/34139446…

仿Google自动补全 jQuery 不含索引处理

http://javazeke.javaeye.com/blog/512390关键字: 仿google自动补全自动补全1&#xff0e; 页面有一个文本框&#xff0c;一个自动提示层&#xff0c;一个按Xml代码1. <script type"text/javascript" src"../js/jquery-1.3.2.js"></script> 2…

在Win10的Linux子系统Ubuntu中使用Qt

在Win10的Linux子系统Ubuntu中使用Qt 陈拓 2021/07/26-2021/07/26 1. 概述 在《Win10的Linux子系统Ubuntu安装图形界面》 https://zhuanlan.zhihu.com/p/393145947 https://blog.csdn.net/chentuo2000/article/details/119104547 一文中我们为WSL安装了图形界面。在本文中…

IE6兼容png图片

<!--[if IE 6]><script src"/js/DD_belatedPNG.js"></script><script>DD_belatedPNG.fix(img,a.opt,.png_bg);</script><![endif]--> DD_belatedPNG.js源码 /*** DD_belatedPNG: Adds IE6 support: PNG images for CSS backgrou…

[从jQuery看JavaScript]-JavaScript

http://blog.csdn.net/natineprince/archive/2009/10/31/4751609.aspx什么是JavaScript&#xff1f;相信随便百度Google一下都能找到一大堆的定义解释。而在我的理解中&#xff0c;JavaScript就是一种客户端的脚本 语言&#xff0c;用于处理页面数据逻辑和用户体验&#xff08;…

海康威视客户端iVMS-4200连接NVR

海康威视客户端iVMS-4200连接NVR 陈拓 2021/07/30-2021/08/01 1. 概述 iVMS-4200客户端是一款与网络监控设备配套使用的综合应用软件&#xff0c;可满足用户多方面需求&#xff0c;如设备管理、人员管理、考勤、可视对讲、数据分析、远程设备配置等。客户端可与DVR、NVR、IPC…

海康威视SDK实例QtDemo显示NVR视频窗口(Linux+Qt)

海康威视SDK实例QtDemo显示NVR视频窗口(LinuxQt) 陈拓 2021/07/312021/08/01 1. 概述 在《海康威视客户端iVMS-4200连接NVR》 https://zhuanlan.zhihu.com/p/395137370 https://blog.csdn.net/chentuo2000/article/details/119298486 一文中我们通过海康威视客户端iVMS-42…