NodeMCU 之 U8G2 库使用详解

1.指令

 u8g2.clearDisplay();    // 清除显示数据及屏幕u8g2.clearBuffer();    // 清Buffer缓冲区的数据u8g2.sendBuffer();    // 将Buffer帧缓冲区的内容发送到显示器,发送刷新消息u8g2.sendF("c", 0x0a7);    // 向显示控制器发送特殊命令u8g2.setPowerSave(0)    // 开关省电模式

2.设置

u8g2.enableUTF8Print();    //设置启用UTF-8支持
u8g2.disableUTF8Print();    //设置停用UTF-8支持
u8g2.setContrast();    //设置显示屏亮度/对比度(0-255)
u8g2.setBusClock();    //设置连接速度(IIC:200000-400000/SPI:1000000-8000000),在begin()之前调用

2.1设置字体:

u8g2.setFontMode(0);    //定义字体背景模式,仅u8g2_xxx_tX字体支持,默认0,禁用透明
u8g2.setFontDirection(0); //旋转当前显示 参数:0/1/2/3
u8g2.setFont(u8g2_font_unifont_t_chinese2);    //设置字体
u8g2.setFontPosCenter();    //设置字体基线Center/Baseline/Bottom/Top

2.2设置颜色:

u8g2.setDrawColor(1); //设置颜色,0透显,1实显,2XOR (drawCircle,drawDisc,drawEllipse和drawFilledEllipse不支持XOR模式)

2.3设置光标位置:

u8g2.home();    //设置光标回初始位置
u8g2.setCursor(x, y); //设置打印功能的光标位置
u8g2.setBitmapMode(0);    //设置是否开启位图函数背景色

3.简单绘制

u8g2.drawStr(x, y, "文本"); // 绘制文本字符,不能绘制编码大于或等于256,绘制文本前需定义字体.y轴向上绘制
u8g2.drawUTF8(x, y,"字符");    // 绘制一个编码为UTF-8的字符串.注意1.编译器支持2.代码编辑器支持
u8g2.drawGlyph(x, y, HEX);    // 绘制特殊文本图标(需联合特殊字体)
u8g2.print();    // 打印文本字符(需要联合光标位置setCursor,setFont)支持变量和F()

4.高级绘制
4.0.绘制点

u8g2.drawPixel(x, y); // 在xy位置绘制一个像素.

4.1.绘制线条

u8g2.drawHLine(x, y, w); // 绘制水平线 w长度
u8g2.drawVLine(x, y, h);    // 绘制垂直线 h高度
u8g2.drawLine(x1, y1, x2, y2);    // 画自由线 x1y1点1 x2y2点2

4.2.绘制矩形

u8g2.drawBox(x, y, w, h); // 画填充矩形w,h,宽度,高度 2 u8g2.drawFrame(x, y, w, h); // 画空心矩形w,h,宽度,高度

4.2.1.绘制圆角矩形

u8g2.drawRFrame(x,y,w,h,r); //要求w >= 2*(r+1);h >= 2*(r+1);否则未定义2*(r+1)

4.3. 绘制圆形
4.3.1.画正/椭圆

 u8g2.drawCircle(圆心x, 圆心y, 半径rad, 部分位置U8G2_DRAW_ALL);    // 画空心圆 rad半径 直径为 2rad+1
u8g2.drawEllipse(圆心x, 圆心y, 椭圆长度x, 椭圆宽度y, 部分位置U8G2_DRAW_ALL)    //画空心椭圆 长度和宽度均为整个圆的1/2
U8G2_DRAW_ALL    /*替换参数: U8G2_DRAW_ALL 全部
U8G2_DRAW_UPPER_RIGHT 上右
U8G2_DRAW_UPPER_LEFT 上左
U8G2_DRAW_LOWER_RIGHT 下右
U8G2_DRAW_LOWER_LEFT 下左*/

4.4.绘制多边形

 u8g2.drawTriangle(x1,y1,x2,y2,x3,y3); //三个点的坐标,实心

4.5.绘制位图图像

u8g2.drawXBM( x, y, w, h, bits);    //bits是位图资源表,setBitmapMode(1)切换为旧模式

5.绘制处理
5.1.指定区域绘制

u8g2.setClipWindow(x1, y1, x2, y2);    //从1到2形成可视矩形,矩形内部可视,外部遮盖
u8g2.updateDisplay();    //刷新全部显示区域
u8g2.updateDisplayArea(x, y, w, h);    //刷新指定区域显示 推荐sendBuffer

6.按键功能处理

u8g2.userInterfaceInputValue("标题","提示文本",值,最低值,最高值,值的位数,"文本")    //按键消息菜单
u8g2.userInterfaceMessage("Title1", "Title2", "Title3", " Ok \n Cancel ");    //按键确认菜单
u8g2.userInterfaceSelectionList("Title", 默认选择项, "Select1\Select2\Select3");    //按键选择菜单

7.高级API操作

u8g2.getBufferSize ();   //返回页面缓冲区的大小,等于8*u8g2.getBufferTileHeight*u8g2.getBufferTileWidth
u8g2.setBufferPtr(buf);    //指向内部页面缓冲区开始位的指针

NodeMCU 之 U8G2 库使用详解相关推荐

  1. Python爬虫之selenium库使用详解

    Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...

  2. python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理

    原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...

  3. linux mysql 静态库_Linux静态库与动态库实例详解

    Linux静态库与动态库实例详解 1. Linux 下静态链接库编译与使用 首先编写如下代码: // main.c #include "test.h" int main(){ te ...

  4. python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...

    原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...

  5. cJSON库用法详解

    cJSON库用法详解_宁静致远2021的博客-CSDN博客_cjson cJSON库用法详解 问题和需要注意的地方 一.JSON.cJSON简介 1. JSON 简介 2. JSON 语法 3. 开源 ...

  6. STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解)

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  7. python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解

    扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...

  8. Python标准库time详解

    Python标准库time详解 1.time库 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 结构化时间(struct_time ...

  9. SwiftDate日期库使用详解

    SwiftDate日期库使用详解 一.基本介绍 1.什么是SwiftDate? (1) SwiftDate是一个使用Swift语言编写的Date的封装库,使用它可以很方便的对日期进行处理,方便我们工程 ...

最新文章

  1. 渐变色填充菱形c语言,生成渐变色填充六边形的4种方法
  2. 基于100,000篇演讲的分析数据科学家发现了最佳演讲者的特征——及时解释听众不懂的词语,必要时提高10%的音调,正确和恰当的手势,氛围的营造...
  3. Python源码剖析[16] —— Pyc文件解析
  4. xampp mysql 备份_Linux Xampp计划任务自动备份Mysql数据库和所有网站
  5. python 类中定义列表_Python-从类定义中的列表理解访问类变量
  6. WPF学习笔记(7):DataGrid中数字自定义格式显示
  7. 《Algorithms》Comparable 实现插入排序
  8. python中定义一个类、实例化时传入的参数如何传递_用实例分析Python中method的参数传递过程...
  9. 腾讯起诉西瓜视频直播《王者荣耀》;人人车否认破产;苹果人事大变动! | 极客头条...
  10. 如何利用wireshark对TCP消息进行分析
  11. pythonclass全局变量_python类怎么定义全局变量
  12. java一行输入多个数据类型_Java中的3种输入方式实现解析
  13. Ext.widgets-menu
  14. 解决eclipse打开报错:failed to create the java virtual ma
  15. 深度学习实战8-生活照片转化漫画照片应用
  16. 11-17今日分享SINGSALE使用虚拟卡支付教程
  17. Java并发技术学习总结
  18. 京东电器工程师笔试题
  19. ElasticSearch(四):ES nested嵌套文档与父子文档处理
  20. 二年级课程表(4月11日-4月15日)

热门文章

  1. 《陈二狗妖孽人生》之经典语录
  2. [已迁移]数据结构-霍夫曼编码
  3. 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用43
  4. 【TS】1010- 细数 10 个 TypeScript 奇怪的符号
  5. 阿里云虚拟云主机使用PHPMailer无法发送邮件的问题
  6. 辅修计算机的机械专业大二同学的跨考准备
  7. c语言expand函数,练习 3-3 编写函数expand(s1, s2) (C语言 + 详细注释)
  8. (AI)人工智能导论实验【A* 算法】
  9. java中0是真是假_为什么0为假?
  10. 股票自动交易软件的网格交易的优势?