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学习笔记(七) 复位和时钟

    ESP32学习笔记 七 复位和时钟 目录 ESP32学习笔记 一 芯片型号介绍 ESP32学习笔记 二 开发环境搭建 VSCode platformio ESP32学习笔记 三 硬件资源介绍 ESP32学习笔记 四 串口通信 ESP32学习
  • 【ESP-Matter】matter协议学习笔记--以乐鑫方案为例

    matter协议学习笔记 以乐鑫方案为例 0 写在前边的话 1 matter 协议基本概念 2 设备间的本地自动化交互 2 1 同步控制的实例 2 2 异步通知 订阅 报告 3 桥接设备 4 thread 边界路由器 5 专业名词 0 写在
  • esp32 SPIFFS的使用

    读取方法 include FS h include SPIFFS h include AutoFile h void File Init SPIFFS begin true 挂载 时间较长 void contentWrite String
  • ESP32开发路程LVGL篇(三)——显示图片

    目录 显示图片 在线转换图片 图片加入项目 主函数代码 参考 LVGL 图片 显示图片 本文利用的方式 通过工具将图片转化为 c文件 写入单片机程序并进行烧录 这种方式实现起来较为简单 但是由于硬件限制 图片的大小会受限 且占用内存 可以用
  • [ESP32]ESP32 Arduino BLE调试 / 与安卓蓝牙数据交互

    帖子导航 ESP32 ESP32 Arduino开发环境搭建 首先得有支持包吧 ESP32 BLE支持包 进入arduino IDE gt 文件 gt 首选项 gt 项目文件位置 到该路径下 打开git工具 项目地址 https githu
  • 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系统 并在此系统中进行开发编译和下载固件 一 准
  • 【STM32 x ESP8266】连接 MQTT 服务器(报文,附部分源码解析)

    MQTT 协议作为物联网非常重要的传输协议 如何使用它十分重要 如果有不理解的同学可以点击这里学习 这里只是简单介绍一下 同时这里附上MQTT 3 1 1协议中文版 pdf 的链接 对协议底层感兴趣的同学可以下载学习一下 同时下面的实现函数
  • 单片机开发---ESP32S3移植lvgl+触摸屏

    书接上文 单片机开发 ESP32 S3模块上手 本章内容 熟悉一下ESP32S3的开发 修改范例程序的lvgl 使之能够匹配现在的显示屏 具体工作大概为通过SPI接口连接一块SPI串口屏幕 并且适配lvgl 最后加上触摸屏作为输入 屏幕 用
  • esp32-S3专题二:内存2之RTC内存、FLASH使用

    承接上文 讲一下esp32上剩下的几个存储空间的用途 目录 一 RTC存储器 一 RTC 快速存储器 二 RTC 慢速存储器 二 Flash 一 NVS 表 二 程序和OTA分区 三 SPIFFS 文件系统 三 总结 一 RTC存储器 es
  • ESP32引脚参考

    原文链接 ESP32引脚参考 您应该使用哪个GPIO引脚 360doc个人图书馆 总结的相当全面 ESP32简单易懂的GPIO使用注意事项 首先上图 GPIO建议列表 特别的在硬件上要注意使用外接模块时不能将GPIO12拉高 否则将导致ES
  • 启明云端分享

    提示 启明云端从2013年起就作为Espressif 乐鑫科技 大中华区合作伙伴 我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程 同时也用心推出了基于乐鑫的相关应用方案 希望你能第一时间了解并快速用上好的方案和产品
  • ESP32-S2应用开发——USB通信(CDC类)

    ESP32S2应用开发 USB通信 CDC类 目录 ESP32S2应用开发 USB通信 CDC类 前言 1 硬件介绍 1 1 硬件连接 2 软件开发 2 1 安装开发板 2 2 安装库 2 3 运行示例代码 2 4 USB传输速度测试 结束
  • 自制教学用ESP32开发板【ESP32_Py_Board】① 开发环境搭建

    摘要 由于教学需要 自己设计了一款ESP32开发板 用于 短距离无线通信 课堂教学使用 开发板整体效果如下图 该开发板采用Type C接口供电 板载CH340K串口芯片 支持自动下载 240 240全彩SPI接口显示屏 温度传感器DS18B
  • ESP32(Micro Python) LVGL 传感器数值显示

    本程序用于显示SR04超声波传感器和BMP280气压温度传感器的读数 由于高度数值类型不符合要求 BMP280改为显示气压和温度值 气压值分两部分显示 分别为千帕值 100 避免超出表盘显示范围 和千帕值的两位小数 由于标签不能显示动态数值
  • 在 esp32 上运行 lvgl + freetype

    前言 最近有个需求 如何在 esp32 上运行 lvgl freetype 这个想法的难点是 freetype 的环境搭建 我想将其做得非常简单 最好的办法是做成组件来使用 所以我将 freetype 的相关依赖做成了 esp idf 组件
  • 还是 “月饼” 后续,玩转炫彩 “月饼” 之 问题说明

    画一个 月饼 陪我过中秋 开发板后续问题跟进说明 目录 前言 一 出现问题 二 寻求办法 三 若有所思 四 问题测试 结语 悬赏送开发板 前言 本文有纯理论玩家是永远不会经历的实际问题 嵌入式工程师不动手永远出不了作品 本文最后有送开发板的
  • esp32cam门禁系统简易教程

    esp32cam门禁系统简易教程 人脸识别 1 环境安装 最好有梯子 arduino IDE 1 官网下载地址 选择相应版本下载Windows ZIP file 无脑安装 2 配置IDE 打开IDE 文件 gt 首选项 gt 附加开发板管理
  • 小白也能快速学会的Micropython编译指南

    小白也能快速学会的Micropython编译指南 大家好 我是CSDN上的 上坂龍二 哦 今天给大家带来的是 如何快速一次成功地将Micropython和自己喜欢的模块编译进自己的Esp32固件中哦 事前准备 Python python的环
  • 【ESP32接入国产大模型之文心一言】

    1 怎样接入文心一言 随着人工智能技术的不断发展 自然语言处理领域也得到了广泛的关注和应用 在这个领域中 文心一言作为一款强大的自然语言处理工具 具有许多重要的应用价值 本文将重点介绍如何通过ESP32接入国产大模型之文心一言api 以及其
  • ADXL345 与 ESP32 I2C 垃圾值问题

    我已根据以下教程使用 I2C 接口将 ESP32 与 ADXL345 连接起来Tutorial http www esp32learning com code esp32 and adxl345 sensor example php 但是

随机推荐

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

    最近双十一活动如火如荼的进行着 有换新手机打算的你还在等什么呢 现在国内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上