首页 > 其他 > 详细

(小菜鸟写库)个人为0.95寸OLED写的图形界面库(连载)

时间:2016-09-24 23:26:51      阅读:586      评论:0      收藏:0      [点我收藏+]

名称

OLED_Window.h

OLED_Window.c

功能:对外资提供三个接口:1添加图标控件
                                    2光标移动(选择图标)函数
                                    3光标确定(执行图标)函数

                                    4显示函数

                                    

OLED_Window.h代码

#ifndef _OLED_WINDOW_H
#define _OLED_WINDOW_H
#include "OLED.h"   //OLED驱动库
/*******************OLED驱动库函数接口************************/
#define DRAW_string     
/*******************************************/
#define PAGE 2  //Icon 页数
#define NUM 6    //每页多少个
#define Icon_Max  12  //Icon最大个数 PAGE*NUM
#define ICON_W 42     //图标宽
#define ICON_H 24     //图标高
#define FistRow_Distan 16         //第一行状态栏高度
#define ICON_STR_H 16            //字高
#define ICON_STR_W 32                 //字最大宽
#define ICON_Distan_H 4     //  图标空白角高 
#define ICON_Distan_W 5      //图标空白角宽
#define STRING_LE 10        //允许最大字符数
#define Power_Len 10
#define Power_H   8
#define Power_W  12
#define Power_X   4
#define Power_Y   2
#define Power_W_dis 1 //Power_W_dis=(Power_W-Power_Len)/2
/**************函数宏**************************/
#define Set_Pos(x,y)  LCD_Set_Pos(x,y)
#define Print_string(x,y,p) OLED_ShowString(x,y,p)
#define Print_string_Mode(x,y,p,m)   OLED_ShowString_Mode(x,y,p,m)
#define Print_Fill(x1,y1,x2,y2,dot)  OLED_Fill(x1,y1,x2-1,y2-1,dot)
#define Print_Clear() OLED_Clear()
/*****************************************/
#ifndef U8
#define U8 unsigned char 
#endif
/***********************************/
#define C_ERR  0
#define C_OK   1
/**************************************/
//typedef struct {
//    table[PAGE][NUM];    
//}HOME_map;
typedef struct{
    U8 x;
    U8 y;    
}Point;

typedef struct {
    unsigned char name[STRING_LE];
    void (*Event)(void);    
}Icon;

U8 Window_Icon_Add(unsigned char *name,void (*Event)(void));//添加图标
void Point_Select(void);   //光标移动(选择图标)
void Point_Select_Ok(void);  //光标确定(执行图标)
void Window_Home_DIS(void);//显示
#endif

.c部分代码

U8 Window_Icon_Add(unsigned char *name,void (*Event)(void)) //图标控件注册
{
    if(Icon_num<=12)
    { 
        Icon *Temp_Icon;
        U8 i;
        unsigned char c;
        Icon_num++;
        
        Temp_Icon=&Icon_table[(Icon_num-1)/NUM][(Icon_num-1)%NUM];
        for(i=0;i<STRING_LE;i++)
        { 
            c=*name;
            if(c!=\0)
            Temp_Icon->name[i]=c;
            else  break;
            name++;
}
        Temp_Icon->name[i+1]=\0;
        Temp_Icon->Event=Event;
    return  C_OK;
    }
    else
        return C_ERR;
    
}

 技术分享技术分享技术分享

 

(小菜鸟写库)个人为0.95寸OLED写的图形界面库(连载)

原文:http://www.cnblogs.com/renlongpingxuexi/p/5904231.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!