arduino u8glib函数库 | 您所在的位置:网站首页 › 清屏函数怎么用 › arduino u8glib函数库 |
arduino u8glib函数库_u8g使用
思创斯忠实用户-ss • 2023年1月22日 19:15 • 未分类 arduino u8glib函数库_u8g使用转载请注明: 冬菇不败 及出处:http://www.arduino.cn/thread-41193-1-1.html以下的函数描述是源自原文:https://github.com/olikraus/u8g2/wiki/u8g2reference#begin自己再通过测试后才发布,采用一个更新方式(精力有限,学习为主),客官觉得不错,就打赏一下呗~U8G2是U8GLIB的增强版 大家好,我是你的好朋友思创斯。今天说一说arduino u8glib函数库_u8g使用,希望您对编程的造诣更进一步. 转载请注明: 冬菇不败 及出处 :http://www.arduino.cn/thread-41193-1-1.html以下的函数描述是源自原文:https://github.com/olikraus/u8g2/wiki/u8g2reference#begin自己再通过测试后才发布,采用一个更新方式(精力有限,学习为主),客官觉得不错,就打赏一下呗~U8G2是U8GLIB的增强版,相对旧版更加好用,强大,兼容板子多。U8G2有两种模式:U8g2是增强版模式,U8X8是简便模式省内存,在setup()里必须设定模式.函数开始前,先讲一个东西。arduino 和OLED连接的方法(示例NANO和128X64 API OLED) 复制代码 U8G2_R0是一个参数:指定大局显示的基本布局: 布局 描述 U8G2_R0 正常显示 U8G2_R1 90度顺时针旋转 U8G2_R2 180度顺时针旋转 U8G2_R3 270度顺时针旋转 U8G2_MIRROR 正常显示镜像内容(v2.6.x版本以上使用) 注意:U8G2_MIRROR需要与setFlipMode()配搭使用.
————————————————-屏幕基本函数——————————————-u8g2.begin( ) //开始构造U8G2, 在setup()内使用。 特别说明:初始化在Arduino的环境。 配置OLED的显示模式initDiplay或者省电模式setPowerSave,或者重置(清屏)clearDisplay 。同时检测六个按钮程序(比如前进、后退、确认、上一级…)。如果没有,可以在里定义按钮事件的引脚,用GetMenuEvent函数来定义,来进入到用户想要的界面,详情就看userInterfaceMessage和GetMenuEvent函数。无返回值。 关联使用函数:initDispaly 、setPowersave、clearDisplay、u8g2.clear() // 清除缓冲区”Buffer”内的所有像素点 关联使用函数:print、home、clearBuffer u8g2.clearBuffer() //清除内存中的所有缓冲区内的像素,而后可以用sendBuffer函数来把缓冲区“Buffer”在屏幕上显示出来,以便清屏。因这个过程是在微处理器中RAM里的副本”Buffer”中进行,标志“F”,所以sendBuffer也就是直接操作副本“Buffer”。 关联使用函数:sendBuffer例子: void loop(void) { u8g2.clearBuffer(); //清除当前Buffer内的像素 // 在Buffer内一些操作 u8g2.sendBuffer(); //发送Buffer内容到屏上 delay(1000);复制代码 u8g2.clearDisplay() //清除显示中所有像素。此过程在begin()中调用。在程序中一般用不上,也是通过sendBuffer和clearBuffer函数显示出来,一样的处理方式。关联使用函数:begin u8g2.disableUTF8Print() //禁用 UTF8字集 (万国语字库),默认是开启的。关联使用函数:print 、enableUTF8Print u8g2.enableUTF8Print () //启用 UTF8字集,许可UniCode向print发送字符串。这个函数通常在begin()后调用。关联使用函数:print、disableUTF8Print例子: void setup(void) { u8g2.begin(); u8g2.enableUTF8Print(); // 使print支持UTF8字集 }复制代码 u8g2.Print() //在入当前光标位置用当前设置的字体,来打印出(内容)。光标位置可以用setCursor函数。字体可以用setFont函数。关联使用函数:print(U8x8)、enableUTF8Print、setFont、setCursor、例子: u8g2.setFont(u8g2_font_ncenB14_tr); //设置字体 u8g2.setCursor(0, 15); //设置光标处 u8g2.print(“Hello World!”); //输出内容复制代码 U8x8:一个自带字库,详情见setFont函数————————————————-绘图显示函数——————————————-u8g2.drawBitMap() //在指定的x / y位置(位图左上角)绘制位图.。位图的部分可能位于显示边界之外。位图由数组位图指定。清除位意味着:不绘制像素。数组内的一个置位意味着:用当前颜色索引写像素。对于单色显示器,颜色索引0通常会清除一个像素,并且颜色索引1将设置一个像素。因为复杂耗内存,此函数在U8G2中被停用!格式:u8g2.drawBitMap (x,y,cnt,h)参数: x是水平线位置 y是垂直线位置 cnt是点阵图字节数,宽是1字节*8(这个字节数必须控制好,否则点阵图会出现扭曲) h是点阵图高度u8g2.drawBox() //画个实心方形 格式:u8g2.drawBitMap (x,y,w,h)参数: x是水平线起始位置 y是垂直线起始位置 w是方形的宽 h是方形的高例子: #include #include #include U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 4, /* data=*/ 5, /* cs=*/ 3, /* dc=*/ 6, /* reset=*/ 7); void setup(void) { u8g2.begin(); } void loop(void) { u8g2.firstPage(); do { u8g2.drawBox(48,20,25,15); //(起始X,起始Y,方形的宽W,方形的高H) } while ( u8g2.nextPage() ); delay(1000); }复制代码 ![]() u8g2.drawCircle() //画个空心圆,可选四个方向的半圆类似与关联函数:drawDisc 、setDrawColor格式:u8g2.drawCircle(x, y ,rad,opt); // X,YS是绘图起始位置(圆的中心点),rad是圆的四分之一弧度。opt是选项: U8G2_DRAW_UPPER_RIGHT //左上角弧度 U8G2_DRAW_UPPER_LEFT //右上角弧度 U8G2_DRAW_LOWER_LEFT //左下角幅度 U8G2_DRAW_LOWER_RIGHT //右下角幅度 U8G2_DRAW_ALL //全圆例子: void loop(void) { u8g2.firstPage(); do { u8g2.drawCircle(48, 30, 10, U8G2_DRAW_LOWER_LEFT); } while ( u8g2.nextPage() ); delay(1000); }复制代码 ![]() ![]() u8g2.drawDisc() //画个实心圆,使用法跟drawCircle 一个饼样。多普达手机不好使,图片将就看。 ![]() ![]() u8g2.drawFilledEllipse() //画一个实心椭圆形,与u8g2.drawEllipse用法也是一个饼样 ![]() ![]() u8g2.drawGlyph() //绘制字集里的符号,这个功能很帅。 格式:u8g2.drawGlyph(X, Y, 字集代码); // XY依然是坐标,字集需要先设置字体,然后参考示图选择符号输出,如下图 例子: void loop(void) { u8g2.firstPage(); do { u8g2.setFont(u8g2_font_unifont_t_symbols); //先设置字体字集 u8g2.drawGlyph(48, 40, 0x2603); //输出代码 } while ( u8g2.nextPage() ); delay(1000); }
![]() ![]() ![]() u8g.drawLine() //画一条平面直线格式:u8g.drawLine(x0, y0, x1, y1); //x0,y0是直线起始位置, x1,y1是直线终止位置。例子:u8g.drawLine(20, 5, 5, 32); |
CopyRight 2018-2019 实验室设备网 版权所有 |