ESP32的液晶中文显示

2023-11-13

上一篇简单说明了ESP32进行SSD1306的液晶显示,然后希望显示字符,使用前一篇的SSD1306是一个入门,但是不能显示中文。

因此本篇主要演示显示中文。

在arduino中有一个u8g2库,当时用UNO时使用过该库,但是用在ESP32上,有新的问题要解决。


首先在库管理中搜索u8g2库,下载后使用在第三方库使用其中范例,比如printUTF8。

核心代码首先需要设置液晶屏,我用的还是IIC的1306,因此将以下这条注释反注释掉,如果是SPI就选SPI。

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 22, /* data=*/ 21, /* reset=*/ U8X8_PIN_NONE);   // ESP32 Thing, pure SW emulated I2C

里面的clock和data要对应ESP32的D22和D21。头天搞死没出来,结果因为22和21搞反了。

接下来就是初始化

  u8g2.begin();
  u8g2.enableUTF8Print();

后面就是打印代码,包含设置字体,显示方向,清buff,设置光标位置,显示。

由于demo是循环显示固定字符,因此我做了部分变更,可以将串口发送字符发送到ESP32,然后在液晶上进行显示。

以下代码

 /**
  * The MIT License (MIT)
  *用于SSD1306点阵液晶屏显示
  *通过串口发送字符,将字符实时显示在液晶屏上
  */
#include <Arduino.h>
//#include <Wire.h>  // Only needed for Arduino 1.6.5 and earlier
//#include "SSD1306Wire.h" // legacy include: `#include "SSD1306.h"`
#include <U8g2lib.h>
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 22, /* data=*/ 21, /* reset=*/ U8X8_PIN_NONE);   // ESP32 Thing, pure SW emulated I2C

void setup() {
  Serial.begin(115200);
  Serial.println("led test.");
  u8g2.begin();
  u8g2.enableUTF8Print();
  u8g2.setFont(u8g2_font_wqy12_t_gb2312);
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 15);
  u8g2.print("Hello World!");
  u8g2.setCursor(0, 40);
  u8g2.print("你好ESP32");    // Chinese "Hello World" 
  u8g2.sendBuffer();
  
  delay(1000);

}

void loop() { 
  String comdata = "";
  while (Serial.available() > 0)  
  {
      comdata += char(Serial.read());
      delay(2);
  }
  if (comdata.length() > 0)
  {
      
      Serial.print(comdata);
      u8g2.setFontDirection(0);
      u8g2.clearBuffer();
      u8g2.setCursor(0, 15);    
      u8g2.print(comdata);
      u8g2.sendBuffer();
      comdata = "";
  }
  delay(100);
  }

其中,设置中包含全部的液晶设置,要打印大多数中文,则字体需要设置为u8g2_font_wqy12_t_gb2312,如果是原来的demo,chinese2,则很多常用字体都出不来。

loop里面包含了从串口循环读取字符的功能,在打印使用了之后,要将该字符comdata进行一次清空。

发送和打印的结果如下


串口发送的字符:


ESP32显示的结果:

有些需要完善的,比如超出屏幕的字符显示换行等,有需要再优化。另外可以将前面的蓝牙联系起来,实现手机发送,ESP控制显示屏显示,这个就比较有适用功能了。


本来准备开始备考,但是前天才写了就有点赞,感同身受为一个问题而抓狂,能意外找到资料的喜悦。所以,常规操作就备考,累了调剂就调板子吧。

重铸荣光,我背义不容辞๑乛◡乛๑

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP32的液晶中文显示 的相关文章

  • ESP32(MicroPython)摇杆控制舵机

    主程序 橙色 信号线 gt 17 红色 电源正 gt 5V 褐色 电源负 gt GND 导入Pin模块 from machine import Pin import time from servo import Servo from mac
  • ESP32(MicroPython)LVGL图形界面 RGB灯闪烁控制器

    ESP32 MicroPython RGB灯闪烁控制器 本程序通过依次调整RGB灯中每个灯的P 频率和占空比实现对RGB灯闪烁的控制 import lvgl as lv import time from espidf import VSPI
  • 深入分析 ESP32 的 WiFi 状态机

    本工程已托管到 GitHub 具体路径是 https github com tidyjiang8 esp32 projects tree master sta 在前一篇博客 让 ESP32 连接到你的 WiFi 热点 中 我们已经简单地分析
  • esp32 SPIFFS的使用

    读取方法 include FS h include SPIFFS h include AutoFile h void File Init SPIFFS begin true 挂载 时间较长 void contentWrite String
  • esp32-S3专题一:初识esp32

    初识esp32 S3 初识esp32 使用esp32 s3这款芯片开发接近一年了 分享一下开发中的一些经验和项目中的亮点 希望后人能从中借鉴到一些经验 一 优势和缺点 使用的是esp32 s3这款芯片 硬件上搭配300k的RAM的代码运行内
  • 展会速递丨启明云端亮相AWE2021 :看应用,新技术引领家电智能化升级--启明云端WIFI\蓝牙\智慧屏一站式解决方案赢关注 ; 看产品--4寸旋钮屏惊艳AWE2021

    3月23日 25日 由中国家用电器协会主办的2021年中国家电及消费电子博览会 AWE 在上海虹桥国家会展中心 NECC 举行 本届展览会展出了近两年来的创新智慧产品和技术解决方案 启明云端也携多款无线连接及智慧屏方案在内的 无线传输 显示
  • ESP32+Arduino环境搭建教程 合宙ESP32C3

    1 在arduino官网下载安装包并安装 下载地址 https www arduino cc en software 2 安装Arduino对ESP32支持 1 添加ESP32开发板管理器地址 点击文件 gt 首选项 gt 其他开发板管理器
  • ESP32学习笔记(1)—— 搭建开发环境、编译烧录 hello world 工程(基于rtos sdk 3.3.2)

    前言 ESP32 是一套 Wi Fi 2 4 GHz 和蓝牙 4 2 双模解决方案 sdk版本 v3 3 2 此次实验是在 Windows 10 系统下利用虚拟机安装 Ubuntu 16 04系统 并在此系统中进行开发编译和下载固件 一 准
  • 常用的免费Api接口网址

    收录一下常用的免费Api接口 记录参考 具体使用请自行前往查看 和风天气 https dev qweather com docs api 天气预报 https www juhe cn docs api id 73 手机号码归属地 https
  • 【ESP32】VSCode添加驱动文件

    1 创建文件夹并添加驱动文件 2 修改main文件夹下的 CMakeLists txt
  • C#驱动ESP32控制机器臂

    物料清单 介绍 NET nanoFramework 是一个免费的开源平台 可以为受限嵌入式设备编写托管代码应用程序 它适用于多种类型的项目 包括物联网传感器 可穿戴设备 学术概念验证 机器人技术 业余爱好者 创客创作甚至复杂的工业设备 通过
  • ESP32开发板手动更换外置的flash

    ESP32开发板手动更换外置的flash 实物板 风险提示 操作有风险 需谨慎 新手请勿模仿 第一步拿下屏蔽罩 用热风枪 360 吹下来的 第二步 更换flash芯片 ESP32 D0WDQ6芯片下方那个就是flash芯片了型号 25VQ3
  • ESP32/ESP8266使用MicroPython控制DHT11/DHT22

    本教程介绍了如何使用MicroPython固件将DHT11或DHT22温度和湿度传感器与ESP32和ESP8266开发板一起使用 DHT模块 刷新MicroPython固件 要遵循本教程 您需要在ESP32或ESP8266板上安装Micro
  • ESP32-S2应用开发——USB通信(CDC类)

    ESP32S2应用开发 USB通信 CDC类 目录 ESP32S2应用开发 USB通信 CDC类 前言 1 硬件介绍 1 1 硬件连接 2 软件开发 2 1 安装开发板 2 2 安装库 2 3 运行示例代码 2 4 USB传输速度测试 结束
  • 全网最简洁的mpy-cross教程

    大家知道我一向精干 不喜欢搞花儿的 如果去mpy官网看mpy cross的相关资料 估计又得绕蒙 跟我来 保证你三分钟学会 但是本文不涉及原理 第一 mpy cross是干嘛滴 答 把py文件转成mpy系统读的mpy文件 术语咱不懂 叫交叉
  • esp32-S3专题二:内存1之RAM使用

    esp32 S3模块内部的存储分为ROM RAM SPRAM RTC内存 FLASH 种类很多 几乎可以不使用外接存储器的情况下 可以进行很多业务场景 十分有用 现在我们逐一讲解一下他们的作用和使用方法 一 ROM 384 KB 内部 RO
  • cmake中的编译选项

    CMake是一个跨平台的构建系统 它可以根据简单的配置文件生成各种平台的构建工具 例如Makefile Visual Studio项目文件等 CMake使用CMakeLists txt文件来描述项目的构建规则和依赖关系 在这个文件中 可以设
  • 【自用】无法通过ESP32创建HomeAssistant实体问题解决(MQTT对ESP32创建实体请求无应答)

    一 问题描述 1 使用 MQTTX 测试客户端能够创建实体 当通过 MQTTX 发送注册实体请求的时候 实体能够在 MQTT 服务器中注册成功 2 使用 ESP32 无法创建实体 在ESP32中通过 publish 函数发送注册请求的时候
  • ESP32 - 具有本机 LwIP 库的 UDP 广播器/接收器

    我正在使用 ESP32 顺便说一句 这是一个很棒的平台 构建一个分布式应用程序 所有参与者都应该以最简单的形式通过 UDP 进行通信 通过广播发送消息并监听周围所有的消息 每个参与者自行过滤相关消息 到目前为止 我有以下初始化例程 int
  • ESP32 Arduino-ide如何获取唯一id

    我试图自动为每个 esp32 设置一个唯一的 id 在我使用提供该方法的 ESP IDF 框架对设备进行编程之前esp efuse mac get default 这将返回一个 8 字节值 该值在我手上的所有设备上都是唯一的 在arduin

随机推荐

  • 华为手机一键刷新在哪里_颜值高口碑好的四款华为手机,双十一值得剁手

    最近双十一活动如火如荼的进行着 有换新手机打算的你还在等什么呢 现在国内5G发展迅速 用4G手机的你想必也想体验一下更快更强的5G 一部分用户想入手iphone12 安卓阵营则更倾向于性价比质量好的国产华为 但小编建议大家双11也要擦亮眼睛
  • Vue项目打包部署总结

    关注 程序员成长指北 回复 1 加入我们一起学习 天天进步 来源 https wintc top article 29 使用Vue做前后端分离项目时 通常前端是单独部署 用户访问的也是前端项目地址 因此前端开发人员很有必要熟悉一下项目部署的
  • firmware-mod-kit Ubuntu22.04编译通过

    初步了解 初步了解了一下固件打包 发现一般都是有专门的打包工具 openwrt有一个项目是lede 在Github上面可以看到 先下载来看看 同时也查到一个名为firmware mod kit的项目 看样子好像早期打包的工具 说明文档里面说
  • 【实训项目】你好,教练-校园私教平台的设计与开发

    1 设计摘要 随着社会的进步 人们的健康意识逐渐提高 越来越多的人选择在闲暇时间健身 在大学生群体中 这一现象犹为明显 在大学城内 有多家健身房供同学选择 也有许多同学选择在操场或者宿舍内自己健身 全民健身已经逐渐成为一种潮流 在2018年
  • 高新技术八大领域详细分类

    国家重点支持的高新技术领域 一 电子信息技术 二 生物与新医药技术 三 航空航天技术 四 新材料技术 五 高技术服务业 六 新能源及节能技术 七 资源与环境技术 八 高新技术改造传统产业 一 电子信息技术 一 软件1 系统软件操作系统软件技
  • 快速排序与归并排序的非递归算法

    快速排序非递归 快速排序是一种基于分治的排序算法 其基本思想是选定一个基准元素 然后将待排序数组中小于等于基准元素的元素放到其左侧 大于基准元素的元素放到其右侧 然后对左右两个子数组递归地进行同样的操作 直到整个数组有序 快速排序的递归算法
  • C++基本数据类型总结

    一 整形 1 整形有char short int long long long 这5个也默认为signed XX 规则 short至少16位 int至少和short一样 long至少32位 且至少和int一样长 long long至少64位
  • Mol Cell Proteomics.

    文献名 Proteomics Analysis of Extracellular Matrix Remodeling During Zebrafish Heart Regeneration 斑马鱼心脏再生过程中胞外基质重塑的蛋白质组学分析
  • BeanUtils.copyProperties

    Bean copy 的方式 Apache 的 BeanUtils 位于org apache commons beanutils包下 通过上面提到的内省机制调用Setter方法实现 默认实现浅拷贝 想要实现深拷贝 则需要提供自定义的 Conv
  • ERROR: No matching distribution found for pandas

    因该是网络原因 所以利用国内镜像 pip 安装第三方库速度太慢 可设置 pip 从国内的镜像源下载安装 阿里云 http mirrors aliyun com pypi simple 中国科技大学 https pypi mirrors us
  • 内网穿透,外网进行访问本地。

    前言 内网穿透 就是可以本地进行搭建环境 外网进行访问地址 首先我们这边使用natapp进行内网穿透 https natapp cn 1 首先在本站注册账号 点击注册 2 登录后 点击左边 购买隧道 免费 付费均可 3 根据需要选择隧道协议
  • 关于用指针交换两个数

    关于用指针交换两个数 西邮Linux 兴趣小组又到了纳新季 作为一个老学长 面试学弟学妹们的时候 必然要然他们感受到小组的关怀 受尽折磨 这一届孩子还是挺强的 但是一到指针上就栽了坑 在加上我们小组的陈年老题swap屡试不爽 所以在这里总结
  • 机械电子工程中的计算机思维,人工智能技术在机械电子工程领域的应用

    鲁芸 朱慧 摘 要 目前 科学技术的不断发展 人工智能的发展也是一个快速发展的趋势 已被广泛应用于各个领域 机电工程的发展也将呈现出新的发展趋势 传统机械工程随着信息技术的融合 它逐渐向智能化方向发展 机电一体化工程与人工智能技术的融合主要
  • 紧急更新下降难度,《王者荣耀》绝悟 AI 难倒一片玩家

    By 超神经 内容概要 在 5 月 1 日 5 月 4 日期间 玩家通过 王者荣耀 最新版本客户端进入游戏 即可与绝悟 AI 对战 一时间哀鸿遍野 普通玩家 游戏主播 职业选手 纷纷表示被绝悟 AI 虐到体无完肤 关键词 王者荣耀 游戏AI
  • 《实时碰撞检测算法技术》读书笔记(七):分离轴测试

    分离轴测试基于凸体 给定两凸体集A和B 若两集合不存在交集 则必定存在一个轴使得两凸体投影无重叠 若找不到该轴 则两凸体集相交 对于对称几何体如线段 AABB OBB 球体等 其包含中心C且为投影轴上投影区间的中心位置 只需计算其投影区间的
  • Windows 下快速删除大量文件的办法

    本来觉得这么一件小事 没必要写个博客 不过搜了好多地方 竟然没有找到很好的解决方法 所以只好不走寻常路了 今天遇到这么一个问题 在学习用卷积神经网络进行特征和提取的时候 准备实验其中一个Demo 主要是进行猫狗图片识别 于是下载了一个包含猫
  • 前几篇的简要总结

    列表的内置方法 1 插入新元素 list1 append 100 将括号内的字符插入到列表末端 无论输入什么数据类型 都会转换成字符串 list1 insert 0 hello insert可以插入到列表的任意位置 所以要在括号内额外添加索
  • unef螺纹_收藏!英制螺纹详细说明

    一 严格地说 UN UNR UNC UNF UNS以及UNEF是螺纹系列的规定代号 而不是某些英文词组的缩写 统一螺纹 Unified Screw Threads 由英国 United Kingdom 加拿大 Canada 和美国 Unit
  • [HashMap源码学习之路]---数组扩容后元素的前后变化

    HashMap数组扩容后元素的前后变化 前一段时间看了HashMap 的扩容方法 觉得写的太好了 对我很有帮助 现以我理解的来写一下 主要说两方面 扩容后元素的位置 扩容后元素如何分布的 1 resize方法的源码 HashMap 中扩容方
  • ESP32的液晶中文显示

    上一篇简单说明了ESP32进行SSD1306的液晶显示 然后希望显示字符 使用前一篇的SSD1306是一个入门 但是不能显示中文 因此本篇主要演示显示中文 在arduino中有一个u8g2库 当时用UNO时使用过该库 但是用在ESP32上