当前位置: 首页 > news >正文

竹壳天气时钟(三)TFT屏幕显示中文

一、简介

准备用基于esp8266的nodemcu开发板做一个天气时钟。
一步一步记录代码编写过程。

  竹壳天气时钟
  Bamboo shell weather clock
  使用基于esp8266的NodeMCU制作。
  计划用竹子做最后成品的外壳,所以才有了这个名称。

研究了一下我从旧Nokia手机上拆下来的屏幕,是专用的接口和pin数量,也没有印刷或者粘贴型号,在网上搜索了一下上面的编号都找不到有关信息,看来是没法使用。
我没这方面的知识,所以自己随便买了一块1.8寸的屏幕。
到手才知道是ST7735S的驱动,最近几天一直在学习怎么在上面显示文字,英文和数组已经可以按我的想法显示了,中文还不能随心所欲的显示还在学习中,今天记录一下学习过程。

二、我目前在使用的云服务器推荐

学Linux不搞个云服务器始终感觉不爽!
要稳定性、安全性、不差钱的可以使用阿里、腾讯等大厂的云服务器。
本人穷屌丝一枚,所以我用的是免费的“三丰云”,同时提供"免费虚拟主机"和“免费云服务器”产品,有兴趣的可以试一下。
“三丰云”我已经用了一段时间,感觉还是很不错的,速度快也很稳定。
三丰云 https://www.sanfengyun.com 链接。
大家可以点击前往查看是否需要。

 三、1.8寸 TFT屏幕 ST7735S 的使用,学习过程记录

屏幕分辨率:宽带128,高度160
拿到屏幕后就搜索了怎么在arduino上驱动ST7735S,答案是使用TFT_eSPI库。
不知道怎么写代码,又问商家要了资料,结果商家的资料啥用没有,于是自己在网上边学边测试,速度非常缓慢花了几天时间,可以显示英文了。于是修改代码把时间、日期和星期显示到了屏幕上。
这个时候我想显示中文的星期,发现按显示英文的方法显示中文时屏幕直接不显示。
所以又开始了在网上学习,在设备上进行测试,最终确定了两种方法可以在屏幕上显示中文。
一、自己把中文点阵字体库做成16进制数组,与我用得到的汉字形成一一对应的关系做成头文件也好,放在代码中也好就可以显示了。
二、用HZK16这种GB2312字体库,放在SPIFFS中来使用。
第一种方法不够灵活,需要自己把用得到的字都做成16进制数组,不利于后面的开发,为了一劳永逸我选择了第二种方法。
又开始研究在网页中上传文件到SPIFFS中的代码,学习测试了很久最后都是上传成功了,也做了文件大小比较都是正确的,到了代码读取文件时文件大小为0字节。
最后没办法用了arduino插件上传,还下载了一个1.x版本的arduino专门来上传文件到SPIFFS中。还是这个靠谱一次就成功了,早知道直接用这个多好,浪费了好多时间。
这次可以在屏幕上显示很多汉字了,新的问题又出来了,arduino使用的是UTF8编码,字库是GB2312编码,也没法直接显示。
目前正在学习怎么实现UTF8转GB2312编码,下一篇文章写编码转换成功后的代码。
今天就记录到这里了,我要去继续学习怎么转换编码了。


http://www.mrgr.cn/news/53887.html

相关文章:

  • 1.ubuntu下安装noetic
  • Virtuoso Layout无法显示元件,出现pcellEvalFailed错误问题解析
  • iOS IPA上传到App Store Connect的三种方案详解
  • Linux小知识2 系统的启动
  • 程序员必须掌握的消息中间件-RocketMQ
  • 【MacOS】RocketMQ 搭建Java客户端
  • 量价关系总结
  • Redis入门到精通(二):入门Redis看这一篇就够了
  • AI动漫翻唱项目玩法拆解,起号涨粉咔咔猛,实操干货分享
  • ICMP协议以及ARP欺骗攻击
  • 跨平台进程池背后的思想
  • 【数据结构与算法】之二分查找
  • 一个纹理分割的例子
  • Python基础——类型注解
  • javaWeb项目-Springboot+vue-XX图书馆管理系统功能介绍
  • 深度学习面试笔试之循环神经网络(RNN)、门控循环单元(GRU)、长短期记忆(LSTM)
  • 一、go入门
  • 安全基线加固
  • Python中的数值及其计算
  • 学习eNSP对准备华为认证有哪些帮助?
  • 【C++打怪之路Lv11】-- stack、queue和优先级队列
  • MySQL 本地社区版安装(不登录) mysql官网链接
  • HarmonyOS NEXT 应用开发实战(七、知乎日报轮播图的完整实现)
  • 集合论基本概念——紧致性(compact或compactness)
  • 【v5Lite】识别+串口
  • 大厂面试真题-了解云原生吗,简单说一下docker和k8s