1306oled 有些汉字不显示-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6930|回复: 11

1306oled 有些汉字不显示

[复制链接]
发表于 2020-2-13 16:42 | 显示全部楼层 |阅读模式
温度的温出不来 请问下是怎么回事?
//https://pan.baidu.com/s/1nlEqX685XKrC5Z3T4nMGag 提取码:sn42
//可用 温度偏高
#include <dht11.h>                                               //引用dht11库文件,使得下面可以调用相关参数
#define DHT11PIN 2                                             //定义温湿度针脚号为2号引脚
dht11 DHT11;                                                       //实例化一个对象
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

void setup() {         
  Serial.begin(9600);             //设置波特率参数
  pinMode(DHT11PIN, OUTPUT);     //定义输出口

  pinMode(9, OUTPUT);
  digitalWrite(9, 0);  // default output in I2C mode for the SSD1306 test shield: set the i2c adr to 0
  u8g2.enableUTF8Print();//必须否则中文不显示。
  u8g2.begin();
}

void loop() {                                                    //循环
  int chk = DHT11.read(DHT11PIN);     //将读取到的值赋给chk
  int tem = (float)DHT11.temperature;         //将温度值赋值给tem
  int hum = (float)DHT11.humidity;            //将湿度值赋给hum
  Serial.print("Tempeature:");                //打印出Tempeature:
  Serial.println(tem);                       //打印温度结果
  Serial.print("Humidity:");                //打印出Humidity:
  Serial.print(hum);                        //打印出湿度结果
  Serial.println("%");                     //打印出%
  Serial.println();
  delay(1000);                          //延时一段时间
  u8g2.setFont(u8g2_font_unifont_t_chinese1);
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 15);
  u8g2.print("当前温度:");
  u8g2.print(tem);
  u8g2.print("℃");
  u8g2.setCursor(0, 35);
  u8g2.print("湿度:");
  u8g2.print(hum);
  u8g2.print("%");
  u8g2.sendBuffer();
  delay(1000);
}

1581580284822.jpg
发表于 2020-2-13 18:01 | 显示全部楼层
你是用的显示屏自带字库???u8g2显示汉字不是软字库把?
 楼主| 发表于 2020-2-13 21:00 | 显示全部楼层
jh800215 发表于 2020-2-13 18:01
你是用的显示屏自带字库???u8g2显示汉字不是软字库把?

不知道诶
发表于 2020-2-13 21:22 | 显示全部楼层

你购买显示屏的介绍发上来看看
 楼主| 发表于 2020-2-14 00:28 | 显示全部楼层
jh800215 发表于 2020-2-13 21:22
你购买显示屏的介绍发上来看看

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.5a3c2e8dsYt0mu&id=545473426260&_u=eahbb0b7044

买的时候是蓝色的
发表于 2020-2-14 11:00 | 显示全部楼层
系统字库不全
发表于 2020-2-14 23:20 | 显示全部楼层
你的这块OLED只带少量的汉字,不显示的汉字必须自建。
发表于 2020-2-15 02:17 | 显示全部楼层
U8G2 支持汉字时,有不同大小的字库版本。
小的字库省 FLASH,但是字不全;大的字库字全,但是 FLASH 动不动就上百 KB.

目测是 LZ 用了小版本的汉字字库,换个字体有望解决(但是 FLASH 可能不够用)
发表于 2020-2-15 10:18 | 显示全部楼层
U8g2的中文字是不全的,缺字正常
发表于 2020-2-15 11:12 | 显示全部楼层
只显示几个字,可以用取字模然后图形显示。
如果想显示更多的文字 ,最好自己添加字库。只是初次比较麻烦,不过掌握之后,显示更多的字时就方便了。试了添加字库温、湿、:和 °
IMG_20200215_110241.jpg


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:47 , Processed in 0.079792 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表