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

crtarduinotrc 发表于 2020-2-13 16:42

1306oled 有些汉字不显示

温度的温出不来 请问下是怎么回事?
//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);
}

jh800215 发表于 2020-2-13 18:01

你是用的显示屏自带字库???u8g2显示汉字不是软字库把?

crtarduinotrc 发表于 2020-2-13 21:00

jh800215 发表于 2020-2-13 18:01
你是用的显示屏自带字库???u8g2显示汉字不是软字库把?

不知道诶

jh800215 发表于 2020-2-13 21:22

crtarduinotrc 发表于 2020-2-13 21:00
不知道诶

你购买显示屏的介绍发上来看看

crtarduinotrc 发表于 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

买的时候是蓝色的

jh800215 发表于 2020-2-14 11:00

系统字库不全

47okey 发表于 2020-2-14 23:20

你的这块OLED只带少量的汉字,不显示的汉字必须自建。

t3486784401 发表于 2020-2-15 02:17

U8G2 支持汉字时,有不同大小的字库版本。
小的字库省 FLASH,但是字不全;大的字库字全,但是 FLASH 动不动就上百 KB.

目测是 LZ 用了小版本的汉字字库,换个字体有望解决(但是 FLASH 可能不够用)

catlu 发表于 2020-2-15 10:18

U8g2的中文字是不全的,缺字正常

47okey 发表于 2020-2-15 11:12

只显示几个字,可以用取字模然后图形显示。
如果想显示更多的文字 ,最好自己添加字库。只是初次比较麻烦,不过掌握之后,显示更多的字时就方便了。试了添加字库温、湿、:和 °



页: [1] 2
查看完整版本: 1306oled 有些汉字不显示