OLED

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E1VHolxT-1620721812724)(u8g2_logo.png)]

rt-u8g2

0、介绍

u8g2 原先是 Arduino 平台上的一个单色屏驱动,现在移植到了 rt-thread,可以满足各种各种各样的需求。

游戏开发 (examples/games/space_trash)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X6zxL9mO-1620721812727)(docs/games/space_trash.gif)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TFW46yNg-1620721812729)(docs/games/trex.gif)]

用户界面 (examples/page_buffer/icon_menu)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yHmNjW4F-1620721812731)(docs/page_buffer/icon_menu.gif)]

绘图 (examples/page_buffer/graphic_test)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3vj1YpLf-1620721812732)(docs/page_buffer/graphic_test.gif)]

1、U8G2 特点

1.1 支持屏幕多,移植方便

使用 u8g2 的好处在于它支持近 200 种单色屏,同样的代码可以直接运行在不同的屏幕上,比如前面的游戏可以在各种屏幕上运行:

经典 128x64

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lNjeNYWJ-1620721812733)(docs/8080.gif)]

OLED SSD1306 I2C

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdxYL6Xr-1620721812733)(docs/games/space_trash.gif)]

在这里可以看到所有支持的屏幕:

https://github.com/olikraus/u8g2/wiki/gallery

1.2 支持字体多

中文

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mg2U6DQW-1620721812734)(docs/page_buffer/Chinese.jpg)]

韩文

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rg7MUo47-1620721812734)(docs/page_buffer/Korean.jpg)]

日文

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNiNKlBf-1620721812734)(docs/page_buffer/Japanese.jpg)]

梵文

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RoyLsIFe-1620721812735)(docs/page_buffer/Devanagari.jpg)]

1.3 绘图函数多

支持各种绘图函数,而且自带各种 icon

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NKXhVC8T-1620721812735)(docs/page_buffer/weather.gif)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ymzjnxaJ-1620721812736)(docs/page_buffer/clock.gif)]

总结一下 u8g2 的特点:

  • 支持近 200 种单色屏,移植方便
  • 支持各种绘图函数、图像与非操作,自带用户按键检测
  • 支持 unicode 和 utf8,自带 100 多种字体和 100 多个 icon

2、项目说明

2.1 目录结构

说明:目录结构

名称说明
docs文档目录
examples例子目录
src源代码目录
port针对特定平台的移植代码目录

2.2 许可证

  • The U8g2lib code (http://code.google.com/p/u8g2/) is licensed under the terms of
    the new-bsd license (two-clause bsd license). See also:

      http://www.opensource.org/licenses/bsd-license.php  
    
  • The repository and optionally the releases contain icons, which are
    derived from the WPZOOM Developer Icon Set. WPZOOM Developer Icon Set by WPZOOM is licensed under a Creative Commons
    Attribution-ShareAlike 3.0 Unported License.

      http://www.wpzoom.com/wpzoom/new-freebie-wpzoom-developer-icon-set-154-free-icons/ 
    
  • Fonts are licensed under different conditions.for detailed information on the licensing conditions for each font.

      https://github.com/olikraus/u8g2/wiki/fntgrp
    

Check full LICENCE here.

2.3 项目依赖

说明:如果使用 I2C 液晶屏需要开启 I2C,GPIO 模拟 I2C 。

  • Using I2C device drivers
  • Use GPIO to simulate I2C

说明:如果使用 SPI 液晶屏需要开启 SPI 。

  • Using SPI Bus/Device device drivers

3、如何使用 U8G2

使用 u8g2 package 需要在 RT-Thread 的包管理器中选择它,具体路径如下:

RT-Thread online packages
	peripheral libraries and drivers --->
    	[*] U8G2: a u8g2 package for rt-thread
            [*] Use hardware spi                                     
              (spi1)  spi bus name (NEW)              
              (spi10) spi device name (NEW)     
            [*] Use hardware i2c          
              (i2c2)  i2c device name
            U8G2 Examples  --->

然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update 命令更新包到 BSP 中。

一共有50个例程,可以在源码 docs 目录下看到预览图。默认的例程都是用的软件I2C,如果觉得速度比较慢可以使用硬件I2C。

4、注意事项

  • 默测试认使用 STM32F103,如果要使用到其他平台,请参照 移植说明,不过只要用的 RT-Thread 应当不需要额外的移植。
  • 请使用 stm32 目录下的 bsp
  • 编译需要开启 -std=c99
  • 如果编译发现 flash 不够大,可以打开优化选项 -O3 或者参照 这里 去掉多余的字库
  • 完整的 API 手册可以访问这个 链接
  • 其他 常见问题 FAQ

5、感谢

  • u8g2: https://github.com/olikraus/u8g2

6、联系方式

  • 维护:Wu Han
  • 主页:http://wuhanstudio.cc
  • 联系:https://github.com/wuhanstudio/rt-u8g2/issues
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值