U8glib library for monochrome displays, version 2
Go to file
izilzty 639346b53e
更改显示数据字节顺序交换位置
2022-07-06 23:07:26 +08:00
cppsrc 更改显示数据字节顺序交换位置 2022-07-06 23:07:26 +08:00
csrc 更改显示数据字节顺序交换位置 2022-07-06 23:07:26 +08:00
doc Merge branch 'olikraus:master' into master 2022-05-04 14:22:11 +08:00
sys bugfixing, issue #1897 2022-06-25 23:11:09 +02:00
tools 更改显示数据字节顺序交换位置 2022-07-06 23:07:26 +08:00
.gitignore
.gitmodules Replace c-periphery with submodule 2022-04-13 12:58:15 +03:00
.gitpod.Dockerfile
.gitpod.yml
CMakeLists.txt Cmake: Test for register_component, if not found use std cmake add library target 2022-05-03 17:36:00 +01:00
ChangeLog update 2022-06-26 22:59:08 +02:00
LICENSE issue #1632 2022-01-07 23:18:05 +01:00
README.md 增加GP1287AI所适用的驱动板下载地址 2022-05-03 15:44:47 +08:00
SConscript [rt-thread] beautify rt-thread port codes 2021-10-03 21:17:44 -04:00
component.mk

README.md

Gitpod Ready-to-Code

https://raw.githubusercontent.com/wiki/olikraus/u8g2/ref/u8g2_logo_transparent_orange.png

U8g2: Library for monochrome displays, version 2

U8g2 is a monochrome graphics library for embedded devices. U8g2 supports monochrome OLEDs and LCDs, which include the following controllers: SSD1305, SSD1306, SSD1309, SSD1312, SSD1316, SSD1320, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1617, UC1638, UC1701, ST7511, ST7528, ST7565, ST7567, ST7571, ST7586, ST7588, ST75256, ST75320, NT7534, ST7920, IST3020, IST7920, LD7032, KS0108, KS0713, HD44102, T7932, SED1520, SBN1661, IL3820, MAX7219 (see here for a full list).

The Arduino library U8g2 can be installed from the library manager of the Arduino IDE. U8g2 also includes U8x8 library:

  • U8g2
    • Includes all graphics procedures (line/box/circle draw).
    • Supports many fonts. (Almost) no restriction on the font height.
    • Requires some memory in the microcontroller to render the display.
  • U8x8
    • Text output only (character) device.
    • Only fonts allowed with fit into a 8x8 pixel grid.
    • Writes directly to the display. No buffer in the microcontroller required.

Setup Guide and Reference Manual


增加了对【GP1287AI】和【GP1247AI】两款VFD显示器的支持。

另有GP1287AI所适用的驱动板如有需要请前往 https://github.com/izilzty/GP1287AI_VFD_BOARD 下载。

GP1287AI Logo

在Arduino上的安装方法

  • 首先在Arduino IDE内安装原始的U8g2库。
  • 打开库文件位置,默认为C:\Users\%USERNAME%\Documents\Arduino\libraries,如果你有更改过默认库位置请自行查找。
  • 进入U8g2文件夹。
  • 编辑keywords.txt,搜索writeBufferXBM2 KEYWORD2,在其下方分别添加writeBufferPBM3 KEYWORD2writeBufferXBM3 KEYWORD2。此步骤可跳过,只会影响这两个关键字的高亮显示。
  • 进入U8g2\src文件夹。
  • 将文件夹内的5个文件替换为此仓库cppsrc文件夹内的文件。
  • 编辑MUIU8g2.h将2个include路径改为clib\mui.hclib\mui_u8g2.h
  • 编辑U8g2lib.h将1个include路径改为clib\u8g2.hU8x8lib.h所在行不用更改。
  • 编辑U8x8lib.h将1个include路径改为clib\u8x8.h
  • 进入clib文件夹。
  • 将文件夹内的全部文件替换为此仓库csrc文件夹内的文件。
  • 编辑u8g2.h,去除#define U8G2_16BIT的注译启用大尺寸屏幕支持。ESP等平台可以不用编辑会自动开启。
  • 退出Arduino IDE并重新打开修改完成。修改好的库可自行打包在其他电脑上直接安装使用。

注意修改完成后如果U8g2库有后续更新在更新后会恢复为原始版本所以请不要点击更新或将library.properties文件内的版本号更改为更高版本或不存在的版本消除更新提示。

C++/Arduino支持的构造函数为

U8G2_GP1287AI_256X50_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1287AI_256X50_2_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1287AI_256X50_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);

U8G2_GP1287AI_256X50_1_2ND_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1287AI_256X50_2_2ND_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1287AI_256X50_F_2ND_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);

U8G2_GP1287AI_256X50_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/  13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 8);
U8G2_GP1287AI_256X50_2_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/  13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 8);
U8G2_GP1287AI_256X50_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/  13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 8);

U8G2_GP1247AI_253X63_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1247AI_253X63_2_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1247AI_253X63_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);

U8G2_GP1247AI_253X63_1_2ND_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1247AI_253X63_2_2ND_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);
U8G2_GP1247AI_253X63_F_2ND_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 9);

U8G2_GP1247AI_253X63_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/  13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 8);
U8G2_GP1247AI_253X63_2_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/  13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 8);
U8G2_GP1247AI_253X63_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/  13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ U8X8_PIN_NONE, /* reset=*/ 8);

在Arduino上使用和其他屏幕一样直接把构造函数粘贴到示例文件里即可点亮。

C支持的初始化函数为

u8g2_Setup_gp1287ai_256x50_1(&u8g2, U8G2_R0, u8x8_byte_hw_spi, u8x8_gpio_and_delay);
u8g2_Setup_gp1287ai_256x50_2(&u8g2, U8G2_R0, u8x8_byte_hw_spi, u8x8_gpio_and_delay);
u8g2_Setup_gp1287ai_256x50_f(&u8g2, U8G2_R0, u8x8_byte_hw_spi, u8x8_gpio_and_delay);
 
u8g2_Setup_gp1247ai_253x63_1(&u8g2, U8G2_R0, u8x8_byte_hw_spi, u8x8_gpio_and_delay);
u8g2_Setup_gp1247ai_253x63_2(&u8g2, U8G2_R0, u8x8_byte_hw_spi, u8x8_gpio_and_delay);
u8g2_Setup_gp1247ai_253x63_f(&u8g2, U8G2_R0, u8x8_byte_hw_spi, u8x8_gpio_and_delay);

屏幕初始化后的默认亮度很低,以避免测试时意外点亮造成的烧屏,使用时请重新设置亮度:

setContrast();

如需截图请使用:

writeBufferXBM3();
writeBufferPBM3();

其他问题