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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(小菜鸟写库)个人为0.95寸OLED写的图形界面库(连载)相关的知识,希望对你有一定的参考价值。

名称

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写的图形界面库(连载)的主要内容,如果未能解决你的问题,请参考以下文章

OLED显示曲线

Arduino ESP32+OLED + 气象时钟+图形播放器

0.96寸OLED显示图片

SWM181 驱动SH1106 1.3寸 OLED屏幕显示

STM32Cubemx——硬件SPI驱动七针0.96寸OLED

STM32Cubemx——硬件SPI驱动七针0.96寸OLED