查看: 15020|回复: 1

初玩Arduino之U8GLib注意事项

[复制链接]
  • TA的每日心情
    开心
    2014-11-10 21:00
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-11-6 20:24:12 | 显示全部楼层 |阅读模式
    分享到:
    [size=14.4444446563721px]U8gLib是一个驱动128 64 OLED之类液晶屏的一个Arduino库。
    [size=14.4444446563721px]启用I2C用例程点亮液晶屏之后就开始着手写自己的程序来显示内容了。
    [size=14.4444446563721px]于是写了下边一段程序来显示从上往下滚动显示的文字:
    1. #include "U8glib.h"
    2. U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);        // 构造函数,不同的Oled芯片使用的构造函数不同
    3. int y_pos = 0;
    4. void draw(void) {
    5.   u8g.drawStr( 0, y_pos, "Dark World!");
    6. }
    7. void setup(void) {
    8.   u8g.setColorIndex(1);         // pixel on
    9.   u8g.setFont(u8g_font_unifont);
    10.   u8g.setFontPosTop();
    11. }
    12. void loop(void) {
    13.   // picture loop
    14.   u8g.firstPage();  
    15.   do {
    16.     draw();
    17.   } while( u8g.nextPage() );
    18.   y_pos==64?y_pos=0:y_pos++;
    19. }
    复制代码
    [size=14.4444446563721px]翻了下Wiki,使用U8gLib有以下注意事项:
    [size=14.4444446563721px]1、不要在draw()过程中修改任何全局变量的值
    2、不要在draw()过程内部声音任何静态变量
    3、在draw()过程的开始呈现一个空屏幕
    4、像draw color或者当前font等变量值应当在draw()过程开始进行设置
    5、像draw color或者当前font等变量值如果在picture loop中没有改变的话,可以在picture loop之外进行声明
    在写程序之前没有注意第二点,在draw()内部声明了一个变量,进行循环,结果显示异常,最后翻了翻Wiki才发现需要注意第二点。
    [size=14.4444446563721px]u8glib的picture loop非常特别
    1. // picture loop
    2.   u8g.firstPage();  
    3.   do {
    4.     draw();
    5.   } while( u8g.nextPage()
    复制代码
    [size=14.4444446563721px]必须在loop中加这么一个picture loop,循环可以写在后边。

    [size=14.4444446563721px]最终效果:

    QQ图片20141106202019.gif

    评分

    参与人数 1声望 +5 与非币 +10 收起 理由
    shaoziyang + 5 + 10 赞一个!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2014-11-16 21:34:42 | 显示全部楼层
    支持一下,希望更多分享。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-12-21 01:20 , Processed in 0.124006 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.