NodeMCU 之 U8G2 库使用详解
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 库使用详解相关推荐
- Python爬虫之selenium库使用详解
Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...
- python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理
原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...
- linux mysql 静态库_Linux静态库与动态库实例详解
Linux静态库与动态库实例详解 1. Linux 下静态链接库编译与使用 首先编写如下代码: // main.c #include "test.h" int main(){ te ...
- python可以处理多大的数据_科多大数据之Python基础教程之Excel处理库openpyxl详解...
原标题:科多大数据之Python基础教程之Excel处理库openpyxl详解 科多大数据小课堂来啦~Python基础教程之Excel处理库openpyxl详解 openpyxl是一个第三方库,可以处 ...
- cJSON库用法详解
cJSON库用法详解_宁静致远2021的博客-CSDN博客_cjson cJSON库用法详解 问题和需要注意的地方 一.JSON.cJSON简介 1. JSON 简介 2. JSON 语法 3. 开源 ...
- STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解)
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- python的excell库_扣丁学堂Python基础教程之Excel处理库openpyxl详解
扣丁学堂Python基础教程之Excel处理库openpyxl详解 2018-05-04 09:49:49 3197浏览 openpyxl是一个第三方库,可以处理xlsx格式的Excel文件.pipi ...
- Python标准库time详解
Python标准库time详解 1.time库 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 结构化时间(struct_time ...
- SwiftDate日期库使用详解
SwiftDate日期库使用详解 一.基本介绍 1.什么是SwiftDate? (1) SwiftDate是一个使用Swift语言编写的Date的封装库,使用它可以很方便的对日期进行处理,方便我们工程 ...
最新文章
- 渐变色填充菱形c语言,生成渐变色填充六边形的4种方法
- 基于100,000篇演讲的分析数据科学家发现了最佳演讲者的特征——及时解释听众不懂的词语,必要时提高10%的音调,正确和恰当的手势,氛围的营造...
- Python源码剖析[16] —— Pyc文件解析
- xampp mysql 备份_Linux Xampp计划任务自动备份Mysql数据库和所有网站
- python 类中定义列表_Python-从类定义中的列表理解访问类变量
- WPF学习笔记(7):DataGrid中数字自定义格式显示
- 《Algorithms》Comparable 实现插入排序
- python中定义一个类、实例化时传入的参数如何传递_用实例分析Python中method的参数传递过程...
- 腾讯起诉西瓜视频直播《王者荣耀》;人人车否认破产;苹果人事大变动! | 极客头条...
- 如何利用wireshark对TCP消息进行分析
- pythonclass全局变量_python类怎么定义全局变量
- java一行输入多个数据类型_Java中的3种输入方式实现解析
- Ext.widgets-menu
- 解决eclipse打开报错:failed to create the java virtual ma
- 深度学习实战8-生活照片转化漫画照片应用
- 11-17今日分享SINGSALE使用虚拟卡支付教程
- Java并发技术学习总结
- 京东电器工程师笔试题
- ElasticSearch(四):ES nested嵌套文档与父子文档处理
- 二年级课程表(4月11日-4月15日)
热门文章
- 《陈二狗妖孽人生》之经典语录
- [已迁移]数据结构-霍夫曼编码
- 最老程序员创业札记:全文检索、数据挖掘、推荐引擎应用43
- 【TS】1010- 细数 10 个 TypeScript 奇怪的符号
- 阿里云虚拟云主机使用PHPMailer无法发送邮件的问题
- 辅修计算机的机械专业大二同学的跨考准备
- c语言expand函数,练习 3-3 编写函数expand(s1, s2) (C语言 + 详细注释)
- (AI)人工智能导论实验【A* 算法】
- java中0是真是假_为什么0为假?
- 股票自动交易软件的网格交易的优势?