stm32实现0.96oled图片显示,菜单功能

stm32实现0.96oled图片显示,菜单功能

  • 功能展示
  • 简介
  • 代码介绍
    • oled.c
    • oled.h
    • oledfont.h(字库文件)
    • main函数
  • 代码思路讲解

本期内容,我们将学习0.96寸oled的进阶使用,展示图片,实现菜单切换等功能,关于oled的基础内容,这里我不做介绍,大家可以学习 : 夜深人静学32系列17——OLED ,里面讲述了oled的基本知识并实现了一个简单页面的编写。

功能展示

这个菜单一共有三个等级,

  • 一级菜单:原神启动界面
  • 二级菜单:电话、音乐、QQ、定位界面
  • 三级菜单:加载中界面,其他的实在不想写了。。。。。
    在这里插入图片描述

三个等级的界面通过按键0、1、2控制,具体控制逻辑如下:

  • 按键0:进入下一级界面(当界面为1级时),切换同等级界面(其他情况)
  • 按键1:确定,进入下一级界面
  • 按键2:退出,返回上一级界面。

简介

本期内容是基于按键扫描新思路、任务毫秒、秒级任务框架实现的,相关代码和CubeMX配置过程这里也不做介绍。

代码介绍

oled.c


#include "stdlib.h"
#include "oled.h"
#include "oledfont.h"uint8_t Menu_Index = 0;
void Yuanshen(void)
{oled_clear();
oled_show_picture(0,0,127,64,gImage_Yuanshen,1);oled_refresh_gram();
}
void Dingwei(void)
{oled_clear();
oled_show_picture(32,0,64,64,gImage_Dingwei,1);oled_refresh_gram();
}
void QQ(void)
{oled_clear();
oled_show_picture(32,0,64,64,gImage_QQ,1);oled_refresh_gram();
}
void Yinyue(void)
{oled_clear();
oled_show_picture(32,0,64,64,gImage_Yinyue,1);oled_refresh_gram();
}
void Dianhua(void)
{oled_clear();
oled_show_picture(32,0,64,64,gImage_Dianhua,1);oled_refresh_gram();
}
void loading()
{oled_clear();oled_show_string(20,20,"Loading",24);oled_refresh_gram();}// 索引,向下一个,确定,退出,调用函数
Menu_table  table[30]=
{//一级界面(主页面){0,1,1,0,(*Yuanshen)},	//二级界面	{1,2,5,0,(*Dianhua)},	//电话{2,3,5,0,(*Yinyue)},	//音乐{3,4,5,0,(*QQ)},	//qq{4,1,5,0,(*Dingwei)},	//定位//三级界面{5,5,5,1,(*loading)},	//加载中。这里不知道显示什么好了};/** OLED的显存* 每个字节表示8个像素, 128,表示有128列, 8表示有64行, 高位表示第行数.* 比如:g_oled_gram[0][0],包含了第一列,第1~8行的数据. g_oled_gram[0][0].7,即表示坐标(0,0)* 类似的: g_oled_gram[1][0].6,表示坐标(1,1), g_oled_gram[10][1].5,表示坐标(10,10),** 存放格式如下(高位表示低行数).* [0]0 1 2 3 ... 127* [1]0 1 2 3 ... 127* [2]0 1 2 3 ... 127* [3]0 1 2 3 ... 127* [4]0 1 2 3 ... 127* [5]0 1 2 3 ... 127* [6]0 1 2 3 ... 127* [7]0 1 2 3 ... 127*/
static uint8_t g_oled_gram[128][8];/*** @brief       更新显存到OLED* @param       无* @retval      无*/
void oled_refresh_gram(void)
{uint8_t i, n;for (i = 0; i < 8; i++){oled_wr_byte (0xb0 + i, OLED_CMD); /* 设置页地址(0~7) */oled_wr_byte (0x00, OLED_CMD);     /* 设置显示位置—列低地址 */oled_wr_byte (0x10, OLED_CMD);     /* 设置显示位置—列高地址 */for (n = 0; n < 128; n++){oled_wr_byte(g_oled_gram[n][i], OLED_DATA);}}
}#if OLED_MODE == 1    /* 使用8080并口驱动OLED *//*** @brief       通过拼凑的方法向OLED输出一个8位数据* @param       data: 要输出的数据* @retval      无*/
static void oled_data_out(uint8_t data)
{GPIOC->ODR = (GPIOC->ODR & 0XFF00) | (data & 0X00FF);
}/*** @brief       向OLED写入一个字节* @param       data: 要输出的数据* @param       cmd: 数据/命令标志 0,表示命令;1,表示数据;* @retval      无*/
static void oled_wr_byte(uint8_t data, uint8_t cmd)
{oled_data_out(data);OLED_RS(cmd);OLED_CS(0);OLED_WR(0);OLED_WR(1);OLED_CS(1);OLED_RS(1);
}#else   /* 使用SPI驱动OLED *//*** @brief       向OLED写入一个字节* @param       data: 要输出的数据* @param       cmd: 数据/命令标志 0,表示命令;1,表示数据;* @retval      无*/
static void oled_wr_byte(uint8_t data, uint8_t cmd)
{uint8_t i;OLED_RS(cmd);   /* 写命令 */OLED_CS(0);for (i = 0; i < 8; i++){OLED_SCLK(0);if (data & 0x80){OLED_SDIN(1);}else{OLED_SDIN(0);}OLED_SCLK(1);data <<= 1;}OLED_CS(1);OLED_RS(1);
}#endif/*** @brief       开启OLED显示* @param       无* @retval      无*/
void oled_display_on(void)
{oled_wr_byte(0X8D, OLED_CMD);   /* SET DCDC命令 */oled_wr_byte(0X14, OLED_CMD);   /* DCDC ON */oled_wr_byte(0XAF, OLED_CMD);   /* DISPLAY ON */
}/*** @brief       关闭OLED显示* @param       无* @retval      无*/
void oled_display_off(void)
{oled_wr_byte(0X8D, OLED_CMD);   /* SET DCDC命令 */oled_wr_byte(0X10, OLED_CMD);   /* DCDC OFF */oled_wr_byte(0XAE, OLED_CMD);   /* DISPLAY OFF */
}/*** @brief       清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!!* @param       无* @retval      无*/
void oled_clear(void)
{uint8_t i, n;for (i = 0; i < 8; i++)for (n = 0; n < 128; n++)g_oled_gram[n][i] = 0X00;oled_refresh_gram();    /* 更新显示 */
}/*** @brief       OLED画点* @param       x  : 0~127* @param       y  : 0~63* @param       dot: 1 填充 0,清空* @retval      无*/
void oled_draw_point(uint8_t x, uint8_t y, uint8_t dot)
{uint8_t pos, bx, temp = 0;if (x > 127 || y > 63) return;  /* 超出范围了. */pos = y / 8;        /* 计算GRAM里面的y坐标所在的字节, 每个字节可以存储8个行坐标 */bx = y % 8;         /* 取余数,方便计算y在对应字节里面的位置,及行(y)位置 */temp = 1 << bx;     /* 高位表示低行号, 得到y对应的bit位置,将该bit先置1 */if (dot)    /* 画实心点 */{g_oled_gram[x][pos] |= temp;}else        /* 画空点,即不显示 */{g_oled_gram[x][pos] &= ~temp;}
}/*** @brief       OLED填充区域填充*   @note:     注意:需要确保: x1<=x2; y1<=y2  0<=x1<=127  0<=y1<=63* @param       x1,y1: 起点坐标* @param       x2,y2: 终点坐标* @param       dot: 1 填充 0,清空* @retval      无*/
void oled_fill(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t dot)
{uint8_t x, y;for (x = x1; x <= x2; x++){for (y = y1; y <= y2; y++)oled_draw_point(x, y, dot);}oled_refresh_gram();    /* 更新显示 */
}/*** @brief       在指定位置显示一个字符,包括部分字符* @param       x   : 0~127* @param       y   : 0~63* @param       size: 选择字体 12/16/24* @param       mode: 0,反白显示;1,正常显示* @retval      无*/
void oled_show_char(uint8_t x, uint8_t y, uint8_t chr, uint8_t size, uint8_t mode)
{uint8_t temp, t, t1;uint8_t y0 = y;uint8_t *pfont = 0;uint8_t csize = (size / 8 + ((size % 8) ? 1 : 0)) * (size / 2); /* 得到字体一个字符对应点阵集所占的字节数 */chr = chr - ' ';        /* 得到偏移后的值,因为字库是从空格开始存储的,第一个字符是空格 */if (size == 12)         /* 调用1206字体 */{pfont = (uint8_t *)oled_asc2_1206[chr];}else if (size == 16)     /* 调用1608字体 */{pfont = (uint8_t *)oled_asc2_1608[chr];}else if (size == 24)     /* 调用2412字体 */{pfont = (uint8_t *)oled_asc2_2412[chr];}else                    /* 没有的字库 */{return;}for (t = 0; t < csize; t++){temp = pfont[t];for (t1 = 0; t1 < 8; t1++){if (temp & 0x80)oled_draw_point(x, y, mode);else oled_draw_point(x, y, !mode);temp <<= 1;y++;if ((y - y0) == size){y = y0;x++;break;}}}
}/*** @brief       平方函数, m^n* @param       m: 底数* @param       n: 指数* @retval      无*/
static uint32_t oled_pow(uint8_t m, uint8_t n)
{uint32_t result = 1;while (n--){result *= m;}return result;
}/*** @brief       显示len个数字* @param       x,y : 起始坐标* @param       num : 数值(0 ~ 2^32)* @param       len : 显示数字的位数* @param       size: 选择字体 12/16/24* @retval      无*/
void oled_show_num(uint8_t x, uint8_t y, uint32_t num, uint8_t len, uint8_t size)
{uint8_t t, temp;uint8_t enshow = 0;for (t = 0; t < len; t++)   /* 按总显示位数循环 */{temp = (num / oled_pow(10, len - t - 1)) % 10;  /* 获取对应位的数字 */if (enshow == 0 && t < (len - 1))   /* 没有使能显示,且还有位要显示 */{if (temp == 0){oled_show_char(x + (size / 2)*t, y, ' ', size, 1); /* 显示空格,站位 */continue;       /* 继续下个一位 */}else{enshow = 1;     /* 使能显示 */}}oled_show_char(x + (size / 2)*t, y, temp + '0', size, 1);    /* 显示字符 */}
}/*** @brief       显示字符串* @param       x,y : 起始坐标* @param       size: 选择字体 12/16/24* @param       *p  : 字符串指针,指向字符串首地址* @retval      无*/
void oled_show_string(uint8_t x, uint8_t y, const char *p, uint8_t size)
{while ((*p <= '~') && (*p >= ' '))   /* 判断是不是非法字符! */{if (x > (128 - (size / 2)))     /* 宽度越界 */{x = 0;y += size;                  /* 换行 */}if (y > (64 - size))            /* 高度越界 */{y = x = 0;oled_clear();}oled_show_char(x, y, *p, size, 1);   /* 显示一个字符 */x += size / 2;      /* ASCII字符宽度为汉字宽度的一半 */p++;}
}/*** @brief       初始化OLED(SSD1306)* @param       无* @retval      无*/
void oled_init(void)
{GPIO_InitTypeDef gpio_init_struct;
//    __HAL_RCC_GPIOC_CLK_ENABLE();     /* 使能PORTC时钟 */__HAL_RCC_GPIOA_CLK_ENABLE();     /* 使能PORTD时钟 */__HAL_RCC_GPIOB_CLK_ENABLE();     /* 使能PORTG时钟 */#if OLED_MODE==1    /* 使用8080并口模式 *//* PC0 ~ 7 设置 */gpio_init_struct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;                gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(GPIOC, &gpio_init_struct);                /* PC0 ~ 7 设置 */gpio_init_struct.Pin = GPIO_PIN_3|GPIO_PIN_6;           /* PD3, PD6 设置 */gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(GPIOD, &gpio_init_struct);                /* PD3, PD6 设置 */gpio_init_struct.Pin = GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(GPIOG, &gpio_init_struct);                /* WR/RD/RST引脚模式设置 */OLED_WR(1);OLED_RD(1);#else               /* 使用4线SPI 串口模式 */gpio_init_struct.Pin = OLED_SPI_RST_PIN;                /* RST引脚 */gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(OLED_SPI_RST_PORT, &gpio_init_struct);    /* RST引脚模式设置 */gpio_init_struct.Pin = OLED_SPI_CS_PIN;                 /* CS引脚 */gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(OLED_SPI_CS_PORT, &gpio_init_struct);     /* CS引脚模式设置 */gpio_init_struct.Pin = OLED_SPI_RS_PIN;                 /* RS引脚 */gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(OLED_SPI_RS_PORT, &gpio_init_struct);     /* RS引脚模式设置 */gpio_init_struct.Pin = OLED_SPI_SCLK_PIN;                /* SCLK引脚 */gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;             /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                     /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;         /* 中速 */HAL_GPIO_Init(OLED_SPI_SCLK_PORT, &gpio_init_struct);    /* SCLK引脚模式设置 */gpio_init_struct.Pin = OLED_SPI_SDIN_PIN;               /* SDIN引脚模式设置 */gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP;            /* 推挽输出 */gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */gpio_init_struct.Speed = GPIO_SPEED_FREQ_MEDIUM;        /* 中速 */HAL_GPIO_Init(OLED_SPI_SDIN_PORT, &gpio_init_struct);   /* SDIN引脚模式设置 */OLED_SDIN(1);OLED_SCLK(1);
#endifOLED_CS(1);OLED_RS(1);OLED_RST(0);HAL_Delay(100);OLED_RST(1);oled_wr_byte(0xAE, OLED_CMD);   /* 关闭显示 */oled_wr_byte(0xD5, OLED_CMD);   /* 设置时钟分频因子,震荡频率 */oled_wr_byte(80, OLED_CMD);     /* [3:0],分频因子;[7:4],震荡频率 */oled_wr_byte(0xA8, OLED_CMD);   /* 设置驱动路数 */oled_wr_byte(0X3F, OLED_CMD);   /* 默认0X3F(1/64) */oled_wr_byte(0xD3, OLED_CMD);   /* 设置显示偏移 */oled_wr_byte(0X00, OLED_CMD);   /* 默认为0 */oled_wr_byte(0x40, OLED_CMD);   /* 设置显示开始行 [5:0],行数. */oled_wr_byte(0x8D, OLED_CMD);   /* 电荷泵设置 */oled_wr_byte(0x14, OLED_CMD);   /* bit2,开启/关闭 */oled_wr_byte(0x20, OLED_CMD);   /* 设置内存地址模式 */oled_wr_byte(0x02, OLED_CMD);   /* [1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10; */oled_wr_byte(0xA1, OLED_CMD);   /* 段重定义设置,bit0:0,0->0;1,0->127; */oled_wr_byte(0xC8, OLED_CMD);   /* 设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数 */oled_wr_byte(0xDA, OLED_CMD);   /* 设置COM硬件引脚配置 */oled_wr_byte(0x12, OLED_CMD);   /* [5:4]配置 */oled_wr_byte(0x81, OLED_CMD);   /* 对比度设置 */oled_wr_byte(0xEF, OLED_CMD);   /* 1~255;默认0X7F (亮度设置,越大越亮) */oled_wr_byte(0xD9, OLED_CMD);   /* 设置预充电周期 */oled_wr_byte(0xf1, OLED_CMD);   /* [3:0],PHASE 1;[7:4],PHASE 2; */oled_wr_byte(0xDB, OLED_CMD);   /* 设置VCOMH 电压倍率 */oled_wr_byte(0x30, OLED_CMD);   /* [6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc; */oled_wr_byte(0xA4, OLED_CMD);   /* 全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏) */oled_wr_byte(0xA6, OLED_CMD);   /* 设置显示方式;bit0:1,反相显示;0,正常显示 */oled_wr_byte(0xAF, OLED_CMD);   /* 开启显示 */oled_clear();
}/*** @brief       OLED显示图片* @param       x  : 0~127* @param       y  : 0~63* @param       width  : 0~127* @param       height  : 0~63* @param       *pic  : 图片的起始地址* @param       mode: 1 正常显示 0,反向显示* @retval      无*/
void oled_show_picture(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *pic, uint8_t mode)
{uint8_t temp, j;uint8_t y0 = y;uint8_t *g_pic = NULL;uint16_t i, psize = 0;/* 获取该图片的总字节数 */psize = (height / 8 + ((height % 8) ? 1 : 0)) * width;  /* 超出范围 直接返回 */if ((x + width > 128) || (y + height > 64))  return;    g_pic = (uint8_t *)pic;for (i = 0; i < psize; i++){temp = g_pic[i];for (j = 0; j < 8; j++) /* 对一个字节中的8个位数据进行判断 */{if (temp & 0x80)    /* 高位存放的是低坐标 */{oled_draw_point(x, y, mode);}else{oled_draw_point(x, y, !mode);}temp <<= 1;y++;if ((y - y0) == height) /* 一列数据已经处理完毕 */{y = y0;x++;break;}}}
}

oled.h

#ifndef __OLED_H
#define __OLED_H#include "stdlib.h" 
#include "main.h"typedef struct
{uint8_t current;	    //当前状态索引号uint8_t next; 		//向下一个uint8_t enter; 	    //确定uint8_t back; 		//退出void (*current_operation)(void); //当前状态应该执行的操作
} Menu_table;extern uint8_t Menu_Index;
extern Menu_table  table[30];/* OLED模式设置* 0: 4线串行模式  (模块的BS1,BS2均接GND)* 1: 并行8080模式 (模块的BS1,BS2均接VCC)*/
#define OLED_MODE       0   /* 默认使用8080并口模式 *//******************************************************************************************/
/* OLED SPI模式引脚 定义 */
/* 注意:这里仅定义了 OLED 4线SPI模式驱动时的 引脚定义. 8位并口访问, 由于引脚太多,就不单独定义了. */#define OLED_SPI_RST_PORT               GPIOA
#define OLED_SPI_RST_PIN                GPIO_PIN_6
#define OLED_SPI_RST_CLK_ENABLE()       do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0)   /* PG口时钟使能 */#define OLED_SPI_CS_PORT                GPIOB
#define OLED_SPI_CS_PIN                 GPIO_PIN_2
#define OLED_SPI_CS_CLK_ENABLE()        do{ __HAL_RCC_GPIOB_CLK_ENABLE(); }while(0)   /* PD口时钟使能 */#define OLED_SPI_RS_PORT                GPIOA
#define OLED_SPI_RS_PIN                 GPIO_PIN_4
#define OLED_SPI_RS_CLK_ENABLE()        do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0)   /* PD口时钟使能 */#define OLED_SPI_SCLK_PORT              GPIOA
#define OLED_SPI_SCLK_PIN               GPIO_PIN_2
#define OLED_SPI_SCLK_CLK_ENABLE()      do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0)   /* PC口时钟使能 */#define OLED_SPI_SDIN_PORT              GPIOA
#define OLED_SPI_SDIN_PIN               GPIO_PIN_1
#define OLED_SPI_SDIN_CLK_ENABLE()      do{ __HAL_RCC_GPIOA_CLK_ENABLE(); }while(0)   /* PC口时钟使能 *//******************************************************************************************//* OLED SPI模式相关端口控制函数 定义 * 注意:OLED_RST/OLED_CS/OLED_RS,这三个是和80并口模式共用的,即80模式也必须实现这3个函数!*/
#define OLED_RST(x)     do{ x ? \HAL_GPIO_WritePin(OLED_SPI_RST_PORT, OLED_SPI_RST_PIN, GPIO_PIN_SET) : \HAL_GPIO_WritePin(OLED_SPI_RST_PORT, OLED_SPI_RST_PIN, GPIO_PIN_RESET); \}while(0)       /* 设置RST引脚 */#define OLED_CS(x)      do{ x ? \HAL_GPIO_WritePin(OLED_SPI_CS_PORT, OLED_SPI_CS_PIN, GPIO_PIN_SET) : \HAL_GPIO_WritePin(OLED_SPI_CS_PORT, OLED_SPI_CS_PIN, GPIO_PIN_RESET); \}while(0)       /* 设置CS引脚 */
#define OLED_RS(x)      do{ x ? \HAL_GPIO_WritePin(OLED_SPI_RS_PORT, OLED_SPI_RS_PIN, GPIO_PIN_SET) : \HAL_GPIO_WritePin(OLED_SPI_RS_PORT, OLED_SPI_RS_PIN, GPIO_PIN_RESET); \}while(0)       /* 设置RS引脚 */#define OLED_SCLK(x)    do{ x ? \HAL_GPIO_WritePin(OLED_SPI_SCLK_PORT, OLED_SPI_SCLK_PIN, GPIO_PIN_SET) : \HAL_GPIO_WritePin(OLED_SPI_SCLK_PORT, OLED_SPI_SCLK_PIN, GPIO_PIN_RESET); \}while(0)       /* 设置SCLK引脚 */
#define OLED_SDIN(x)    do{ x ? \HAL_GPIO_WritePin(OLED_SPI_SDIN_PORT, OLED_SPI_SDIN_PIN, GPIO_PIN_SET) : \HAL_GPIO_WritePin(OLED_SPI_SDIN_PORT, OLED_SPI_SDIN_PIN, GPIO_PIN_RESET); \}while(0)       /* 设置SDIN引脚 *//* OLED 80并口模式WR,RD端口控制函数 定义 */
#define OLED_WR(x)      do{ x ? \HAL_GPIO_WritePin(GPIOG, GPIO_PIN_14, GPIO_PIN_SET) :  \HAL_GPIO_WritePin(GPIOG, GPIO_PIN_14, GPIO_PIN_RESET); \} while (0)     /* 设置WR引脚 */#define OLED_RD(x)      do{ x ? \HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_SET) : \HAL_GPIO_WritePin(GPIOG, GPIO_PIN_13, GPIO_PIN_RESET); \}while(0)       /* 设置RD引脚 *//* 命令/数据 定义 */
#define OLED_CMD        0       /* 写命令 */
#define OLED_DATA       1       /* 写数据 *//******************************************************************************************/static void oled_wr_byte(uint8_t data, uint8_t cmd);    /* 写一个字节到OLED */
static uint32_t oled_pow(uint8_t m, uint8_t n);         /* OLED求平方函数 */void Yuanshen(void);
void Dingwei(void) ;
void QQ(void);
void Yinyue(void);
void Dianhua(void);                        void oled_init(void);           /* OLED初始化 */
void oled_clear(void);          /* OLED清屏 */
void oled_display_on(void);     /* 开启OLED显示 */
void oled_display_off(void);    /* 关闭OLED显示 */
void oled_refresh_gram(void);   /* 更新显存到OLED */ 
void oled_draw_point(uint8_t x, uint8_t y, uint8_t dot);    /* OLED画点 */
void oled_fill(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t dot);        /* OLED区域填充 */
void oled_show_char(uint8_t x, uint8_t y, uint8_t chr, uint8_t size, uint8_t mode); /* OLED显示字符 */
void oled_show_num(uint8_t x, uint8_t y, uint32_t num, uint8_t len, uint8_t size);  /* OLED显示数字 */
void oled_show_string(uint8_t x, uint8_t y, const char *p, uint8_t size);           /* OLED显示字符串 */void oled_show_picture(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *pic, uint8_t mode);
#endif

关于oled端口的配置,同意配置成推挽输出,无上下拉,高速即可,同事注意在代码中修改对应的引脚
在这里插入图片描述

oledfont.h(字库文件)

#ifndef __OLEDFONT_H
#define __OLEDFONT_H  /* 常用ASCII表* 偏移量32 * ASCII字符集: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~* PC2LCD2002取模方式设置:阴码+逐列式+顺向+C51格式* 总共:3个字符集(12*12、16*16和24*24),用户可以自行新增其他分辨率的字符集。* 每个字符所占用的字节数为:(size/8+((size%8)?1:0))*(size/2),其中size:是字库生成时的点阵大小(12/16/24...)*//* 12*12 ASCII字符集点阵 */
const unsigned char oled_asc2_1206[95][12]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x3F,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x40,0x00,0x00,0x00},/*""",2*/
{0x09,0x00,0x0B,0xC0,0x3D,0x00,0x0B,0xC0,0x3D,0x00,0x09,0x00},/*"#",3*/
{0x18,0xC0,0x24,0x40,0x7F,0xE0,0x22,0x40,0x31,0x80,0x00,0x00},/*"$",4*/
{0x18,0x00,0x24,0xC0,0x1B,0x00,0x0D,0x80,0x32,0x40,0x01,0x80},/*"%",5*/
{0x03,0x80,0x1C,0x40,0x27,0x40,0x1C,0x80,0x07,0x40,0x00,0x40},/*"&",6*/
{0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x40,0x20},/*"(",8*/
{0x00,0x00,0x40,0x20,0x20,0x40,0x1F,0x80,0x00,0x00,0x00,0x00},/*")",9*/
{0x09,0x00,0x06,0x00,0x1F,0x80,0x06,0x00,0x09,0x00,0x00,0x00},/*"*",10*/
{0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x00,0x00},/*"+",11*/
{0x00,0x10,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x20,0x01,0xC0,0x06,0x00,0x38,0x00,0x40,0x00,0x00,0x00},/*"/",15*/
{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"0",16*/
{0x00,0x00,0x10,0x40,0x3F,0xC0,0x00,0x40,0x00,0x00,0x00,0x00},/*"1",17*/
{0x18,0xC0,0x21,0x40,0x22,0x40,0x24,0x40,0x18,0x40,0x00,0x00},/*"2",18*/
{0x10,0x80,0x20,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"3",19*/
{0x02,0x00,0x0D,0x00,0x11,0x00,0x3F,0xC0,0x01,0x40,0x00,0x00},/*"4",20*/
{0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00},/*"5",21*/
{0x1F,0x80,0x24,0x40,0x24,0x40,0x34,0x40,0x03,0x80,0x00,0x00},/*"6",22*/
{0x30,0x00,0x20,0x00,0x27,0xC0,0x38,0x00,0x20,0x00,0x00,0x00},/*"7",23*/
{0x1B,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"8",24*/
{0x1C,0x00,0x22,0xC0,0x22,0x40,0x22,0x40,0x1F,0x80,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x04,0x60,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40},/*"<",28*/
{0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x09,0x00,0x00,0x00},/*"=",29*/
{0x00,0x00,0x40,0x40,0x20,0x80,0x11,0x00,0x0A,0x00,0x04,0x00},/*">",30*/
{0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"?",31*/
{0x1F,0x80,0x20,0x40,0x27,0x40,0x29,0x40,0x1F,0x40,0x00,0x00},/*"@",32*/
{0x00,0x40,0x07,0xC0,0x39,0x00,0x0F,0x00,0x01,0xC0,0x00,0x40},/*"A",33*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x40,0x1B,0x80,0x00,0x00},/*"B",34*/
{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x30,0x80,0x00,0x00},/*"C",35*/
{0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"D",36*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x40,0x30,0xC0,0x00,0x00},/*"E",37*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x2E,0x00,0x30,0x00,0x00,0x00},/*"F",38*/
{0x0F,0x00,0x10,0x80,0x20,0x40,0x22,0x40,0x33,0x80,0x02,0x00},/*"G",39*/
{0x20,0x40,0x3F,0xC0,0x04,0x00,0x04,0x00,0x3F,0xC0,0x20,0x40},/*"H",40*/
{0x20,0x40,0x20,0x40,0x3F,0xC0,0x20,0x40,0x20,0x40,0x00,0x00},/*"I",41*/
{0x00,0x60,0x20,0x20,0x20,0x20,0x3F,0xC0,0x20,0x00,0x20,0x00},/*"J",42*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x0B,0x00,0x30,0xC0,0x20,0x40},/*"K",43*/
{0x20,0x40,0x3F,0xC0,0x20,0x40,0x00,0x40,0x00,0x40,0x00,0xC0},/*"L",44*/
{0x3F,0xC0,0x3C,0x00,0x03,0xC0,0x3C,0x00,0x3F,0xC0,0x00,0x00},/*"M",45*/
{0x20,0x40,0x3F,0xC0,0x0C,0x40,0x23,0x00,0x3F,0xC0,0x20,0x00},/*"N",46*/
{0x1F,0x80,0x20,0x40,0x20,0x40,0x20,0x40,0x1F,0x80,0x00,0x00},/*"O",47*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"P",48*/
{0x1F,0x80,0x21,0x40,0x21,0x40,0x20,0xE0,0x1F,0xA0,0x00,0x00},/*"Q",49*/
{0x20,0x40,0x3F,0xC0,0x24,0x40,0x26,0x00,0x19,0xC0,0x00,0x40},/*"R",50*/
{0x18,0xC0,0x24,0x40,0x24,0x40,0x22,0x40,0x31,0x80,0x00,0x00},/*"S",51*/
{0x30,0x00,0x20,0x40,0x3F,0xC0,0x20,0x40,0x30,0x00,0x00,0x00},/*"T",52*/
{0x20,0x00,0x3F,0x80,0x00,0x40,0x00,0x40,0x3F,0x80,0x20,0x00},/*"U",53*/
{0x20,0x00,0x3E,0x00,0x01,0xC0,0x07,0x00,0x38,0x00,0x20,0x00},/*"V",54*/
{0x38,0x00,0x07,0xC0,0x3C,0x00,0x07,0xC0,0x38,0x00,0x00,0x00},/*"W",55*/
{0x20,0x40,0x39,0xC0,0x06,0x00,0x39,0xC0,0x20,0x40,0x00,0x00},/*"X",56*/
{0x20,0x00,0x38,0x40,0x07,0xC0,0x38,0x40,0x20,0x00,0x00,0x00},/*"Y",57*/
{0x30,0x40,0x21,0xC0,0x26,0x40,0x38,0x40,0x20,0xC0,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x7F,0xE0,0x40,0x20,0x40,0x20,0x00,0x00},/*"[",59*/
{0x00,0x00,0x70,0x00,0x0C,0x00,0x03,0x80,0x00,0x40,0x00,0x00},/*"\",60*/
{0x00,0x00,0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10},/*"_",63*/
{0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x02,0x80,0x05,0x40,0x05,0x40,0x03,0xC0,0x00,0x40},/*"a",65*/
{0x20,0x00,0x3F,0xC0,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00},/*"b",66*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x06,0x40,0x00,0x00},/*"c",67*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x24,0x40,0x3F,0xC0,0x00,0x40},/*"d",68*/
{0x00,0x00,0x03,0x80,0x05,0x40,0x05,0x40,0x03,0x40,0x00,0x00},/*"e",69*/
{0x00,0x00,0x04,0x40,0x1F,0xC0,0x24,0x40,0x24,0x40,0x20,0x00},/*"f",70*/
{0x00,0x00,0x02,0xE0,0x05,0x50,0x05,0x50,0x06,0x50,0x04,0x20},/*"g",71*/
{0x20,0x40,0x3F,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40},/*"h",72*/
{0x00,0x00,0x04,0x40,0x27,0xC0,0x00,0x40,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x10,0x00,0x10,0x04,0x10,0x27,0xE0,0x00,0x00,0x00,0x00},/*"j",74*/
{0x20,0x40,0x3F,0xC0,0x01,0x40,0x07,0x00,0x04,0xC0,0x04,0x40},/*"k",75*/
{0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x40,0x00,0x40,0x00,0x00},/*"l",76*/
{0x07,0xC0,0x04,0x00,0x07,0xC0,0x04,0x00,0x03,0xC0,0x00,0x00},/*"m",77*/
{0x04,0x40,0x07,0xC0,0x04,0x40,0x04,0x00,0x03,0xC0,0x00,0x40},/*"n",78*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x40,0x03,0x80,0x00,0x00},/*"o",79*/
{0x04,0x10,0x07,0xF0,0x04,0x50,0x04,0x40,0x03,0x80,0x00,0x00},/*"p",80*/
{0x00,0x00,0x03,0x80,0x04,0x40,0x04,0x50,0x07,0xF0,0x00,0x10},/*"q",81*/
{0x04,0x40,0x07,0xC0,0x02,0x40,0x04,0x00,0x04,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0x06,0x40,0x05,0x40,0x05,0x40,0x04,0xC0,0x00,0x00},/*"s",83*/
{0x00,0x00,0x04,0x00,0x1F,0x80,0x04,0x40,0x00,0x40,0x00,0x00},/*"t",84*/
{0x04,0x00,0x07,0x80,0x00,0x40,0x04,0x40,0x07,0xC0,0x00,0x40},/*"u",85*/
{0x04,0x00,0x07,0x00,0x04,0xC0,0x01,0x80,0x06,0x00,0x04,0x00},/*"v",86*/
{0x06,0x00,0x01,0xC0,0x07,0x00,0x01,0xC0,0x06,0x00,0x00,0x00},/*"w",87*/
{0x04,0x40,0x06,0xC0,0x01,0x00,0x06,0xC0,0x04,0x40,0x00,0x00},/*"x",88*/
{0x04,0x10,0x07,0x10,0x04,0xE0,0x01,0x80,0x06,0x00,0x04,0x00},/*"y",89*/
{0x00,0x00,0x04,0x40,0x05,0xC0,0x06,0x40,0x04,0x40,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x04,0x00,0x7B,0xE0,0x40,0x20,0x00,0x00},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xF0,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x40,0x20,0x7B,0xE0,0x04,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x40,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x40,0x00},/*"~",94*/
}; /* 16*16 ASCII字符集点阵 */
const unsigned char oled_asc2_1608[95][16]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xCC,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x08,0x00,0x30,0x00,0x60,0x00,0x00,0x00},/*""",2*/
{0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x03,0xFC,0x1E,0x20,0x02,0x20,0x00,0x00},/*"#",3*/
{0x00,0x00,0x0E,0x18,0x11,0x04,0x3F,0xFF,0x10,0x84,0x0C,0x78,0x00,0x00,0x00,0x00},/*"$",4*/
{0x0F,0x00,0x10,0x84,0x0F,0x38,0x00,0xC0,0x07,0x78,0x18,0x84,0x00,0x78,0x00,0x00},/*"%",5*/
{0x00,0x78,0x0F,0x84,0x10,0xC4,0x11,0x24,0x0E,0x98,0x00,0xE4,0x00,0x84,0x00,0x08},/*"&",6*/
{0x08,0x00,0x68,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,0x18,0x18,0x20,0x04,0x40,0x02,0x00,0x00},/*"(",8*/
{0x00,0x00,0x40,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x02,0x40,0x02,0x40,0x01,0x80,0x0F,0xF0,0x01,0x80,0x02,0x40,0x02,0x40,0x00,0x00},/*"*",10*/
{0x00,0x80,0x00,0x80,0x00,0x80,0x0F,0xF8,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00},/*"+",11*/
{0x00,0x01,0x00,0x0D,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80},/*"-",13*/
{0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00},/*"/",15*/
{0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"0",16*/
{0x00,0x00,0x08,0x04,0x08,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"1",17*/
{0x00,0x00,0x0E,0x0C,0x10,0x14,0x10,0x24,0x10,0x44,0x11,0x84,0x0E,0x0C,0x00,0x00},/*"2",18*/
{0x00,0x00,0x0C,0x18,0x10,0x04,0x11,0x04,0x11,0x04,0x12,0x88,0x0C,0x70,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0xE0,0x03,0x20,0x04,0x24,0x08,0x24,0x1F,0xFC,0x00,0x24,0x00,0x00},/*"4",20*/
{0x00,0x00,0x1F,0x98,0x10,0x84,0x11,0x04,0x11,0x04,0x10,0x88,0x10,0x70,0x00,0x00},/*"5",21*/
{0x00,0x00,0x07,0xF0,0x08,0x88,0x11,0x04,0x11,0x04,0x18,0x88,0x00,0x70,0x00,0x00},/*"6",22*/
{0x00,0x00,0x1C,0x00,0x10,0x00,0x10,0xFC,0x13,0x00,0x1C,0x00,0x10,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},/*"8",24*/
{0x00,0x00,0x07,0x00,0x08,0x8C,0x10,0x44,0x10,0x44,0x08,0x88,0x07,0xF0,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0C,0x03,0x0C,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x80,0x01,0x40,0x02,0x20,0x04,0x10,0x08,0x08,0x10,0x04,0x00,0x00},/*"<",28*/
{0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x20,0x00,0x00},/*"=",29*/
{0x00,0x00,0x10,0x04,0x08,0x08,0x04,0x10,0x02,0x20,0x01,0x40,0x00,0x80,0x00,0x00},/*">",30*/
{0x00,0x00,0x0E,0x00,0x12,0x00,0x10,0x0C,0x10,0x6C,0x10,0x80,0x0F,0x00,0x00,0x00},/*"?",31*/
{0x03,0xE0,0x0C,0x18,0x13,0xE4,0x14,0x24,0x17,0xC4,0x08,0x28,0x07,0xD0,0x00,0x00},/*"@",32*/
{0x00,0x04,0x00,0x3C,0x03,0xC4,0x1C,0x40,0x07,0x40,0x00,0xE4,0x00,0x1C,0x00,0x04},/*"A",33*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x11,0x04,0x0E,0x88,0x00,0x70,0x00,0x00},/*"B",34*/
{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x08,0x1C,0x10,0x00,0x00},/*"C",35*/
{0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"D",36*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x04,0x17,0xC4,0x10,0x04,0x08,0x18,0x00,0x00},/*"E",37*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x17,0xC0,0x10,0x00,0x08,0x00,0x00,0x00},/*"F",38*/
{0x03,0xE0,0x0C,0x18,0x10,0x04,0x10,0x04,0x10,0x44,0x1C,0x78,0x00,0x40,0x00,0x00},/*"G",39*/
{0x10,0x04,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x10,0x84,0x1F,0xFC,0x10,0x04},/*"H",40*/
{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00},/*"I",41*/
{0x00,0x03,0x00,0x01,0x10,0x01,0x10,0x01,0x1F,0xFE,0x10,0x00,0x10,0x00,0x00,0x00},/*"J",42*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x03,0x80,0x14,0x64,0x18,0x1C,0x10,0x04,0x00,0x00},/*"K",43*/
{0x10,0x04,0x1F,0xFC,0x10,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x0C,0x00,0x00},/*"L",44*/
{0x10,0x04,0x1F,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x1F,0xFC,0x10,0x04,0x00,0x00},/*"M",45*/
{0x10,0x04,0x1F,0xFC,0x0C,0x04,0x03,0x00,0x00,0xE0,0x10,0x18,0x1F,0xFC,0x10,0x00},/*"N",46*/
{0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},/*"O",47*/
{0x10,0x04,0x1F,0xFC,0x10,0x84,0x10,0x80,0x10,0x80,0x10,0x80,0x0F,0x00,0x00,0x00},/*"P",48*/
{0x07,0xF0,0x08,0x18,0x10,0x24,0x10,0x24,0x10,0x1C,0x08,0x0A,0x07,0xF2,0x00,0x00},/*"Q",49*/
{0x10,0x04,0x1F,0xFC,0x11,0x04,0x11,0x00,0x11,0xC0,0x11,0x30,0x0E,0x0C,0x00,0x04},/*"R",50*/
{0x00,0x00,0x0E,0x1C,0x11,0x04,0x10,0x84,0x10,0x84,0x10,0x44,0x1C,0x38,0x00,0x00},/*"S",51*/
{0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00},/*"T",52*/
{0x10,0x00,0x1F,0xF8,0x10,0x04,0x00,0x04,0x00,0x04,0x10,0x04,0x1F,0xF8,0x10,0x00},/*"U",53*/
{0x10,0x00,0x1E,0x00,0x11,0xE0,0x00,0x1C,0x00,0x70,0x13,0x80,0x1C,0x00,0x10,0x00},/*"V",54*/
{0x1F,0xC0,0x10,0x3C,0x00,0xE0,0x1F,0x00,0x00,0xE0,0x10,0x3C,0x1F,0xC0,0x00,0x00},/*"W",55*/
{0x10,0x04,0x18,0x0C,0x16,0x34,0x01,0xC0,0x01,0xC0,0x16,0x34,0x18,0x0C,0x10,0x04},/*"X",56*/
{0x10,0x00,0x1C,0x00,0x13,0x04,0x00,0xFC,0x13,0x04,0x1C,0x00,0x10,0x00,0x00,0x00},/*"Y",57*/
{0x08,0x04,0x10,0x1C,0x10,0x64,0x10,0x84,0x13,0x04,0x1C,0x04,0x10,0x18,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x00,0x00},/*"[",59*/
{0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x80,0x00,0x60,0x00,0x1C,0x00,0x03,0x00,0x00},/*"\",60*/
{0x00,0x00,0x40,0x02,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00},/*"^",62*/
{0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01},/*"_",63*/
{0x00,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x98,0x01,0x24,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xFC,0x00,0x04},/*"a",65*/
{0x10,0x00,0x1F,0xFC,0x00,0x88,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"b",66*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x11,0x08,0x1F,0xFC,0x00,0x04},/*"d",68*/
{0x00,0x00,0x00,0xF8,0x01,0x44,0x01,0x44,0x01,0x44,0x01,0x44,0x00,0xC8,0x00,0x00},/*"e",69*/
{0x00,0x00,0x01,0x04,0x01,0x04,0x0F,0xFC,0x11,0x04,0x11,0x04,0x11,0x00,0x18,0x00},/*"f",70*/
{0x00,0x00,0x00,0xD6,0x01,0x29,0x01,0x29,0x01,0x29,0x01,0xC9,0x01,0x06,0x00,0x00},/*"g",71*/
{0x10,0x04,0x1F,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"h",72*/
{0x00,0x00,0x01,0x04,0x19,0x04,0x19,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x03,0x00,0x01,0x01,0x01,0x19,0x01,0x19,0xFE,0x00,0x00,0x00,0x00},/*"j",74*/
{0x10,0x04,0x1F,0xFC,0x00,0x24,0x00,0x40,0x01,0xB4,0x01,0x0C,0x01,0x04,0x00,0x00},/*"k",75*/
{0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00},/*"l",76*/
{0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0x00,0x01,0xFC,0x01,0x04,0x01,0x00,0x00,0xFC},/*"m",77*/
{0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x00,0x01,0x00,0x01,0x04,0x00,0xFC,0x00,0x04},/*"n",78*/
{0x00,0x00,0x00,0xF8,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00},/*"o",79*/
{0x01,0x01,0x01,0xFF,0x00,0x85,0x01,0x04,0x01,0x04,0x00,0x88,0x00,0x70,0x00,0x00},/*"p",80*/
{0x00,0x00,0x00,0x70,0x00,0x88,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0xFF,0x00,0x01},/*"q",81*/
{0x01,0x04,0x01,0x04,0x01,0xFC,0x00,0x84,0x01,0x04,0x01,0x00,0x01,0x80,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0xCC,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x24,0x01,0x98,0x00,0x00},/*"s",83*/
{0x00,0x00,0x01,0x00,0x01,0x00,0x07,0xF8,0x01,0x04,0x01,0x04,0x00,0x00,0x00,0x00},/*"t",84*/
{0x01,0x00,0x01,0xF8,0x00,0x04,0x00,0x04,0x00,0x04,0x01,0x08,0x01,0xFC,0x00,0x04},/*"u",85*/
{0x01,0x00,0x01,0x80,0x01,0x70,0x00,0x0C,0x00,0x10,0x01,0x60,0x01,0x80,0x01,0x00},/*"v",86*/
{0x01,0xF0,0x01,0x0C,0x00,0x30,0x01,0xC0,0x00,0x30,0x01,0x0C,0x01,0xF0,0x01,0x00},/*"w",87*/
{0x00,0x00,0x01,0x04,0x01,0x8C,0x00,0x74,0x01,0x70,0x01,0x8C,0x01,0x04,0x00,0x00},/*"x",88*/
{0x01,0x01,0x01,0x81,0x01,0x71,0x00,0x0E,0x00,0x18,0x01,0x60,0x01,0x80,0x01,0x00},/*"y",89*/
{0x00,0x00,0x01,0x84,0x01,0x0C,0x01,0x34,0x01,0x44,0x01,0x84,0x01,0x0C,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3E,0xFC,0x40,0x02,0x40,0x02},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x40,0x02,0x40,0x02,0x3E,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x60,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00},/*"~",94*/
}; /* 24*24 ASICII字符集点阵 */
const unsigned char oled_asc2_2412[95][36]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0x0F,0xFE,0x38,0x0F,0x80,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x06,0x00,0x00,0x0C,0x00,0x00,0x38,0x00,0x00,0x31,0x00,0x00,0x06,0x00,0x00,0x0C,0x00,0x00,0x38,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*""",2*/
{0x00,0x00,0x00,0x00,0x61,0x80,0x00,0x67,0xF8,0x07,0xF9,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x61,0x80,0x00,0x67,0xF8,0x07,0xF9,0x80,0x00,0x61,0x80,0x00,0x00,0x00},/*"#",3*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0xE0,0x03,0xE0,0xF0,0x06,0x30,0x08,0x04,0x18,0x08,0x1F,0xFF,0xFE,0x04,0x0E,0x08,0x07,0x87,0xF0,0x03,0x81,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"$",4*/
{0x01,0xF0,0x00,0x06,0x0C,0x00,0x04,0x04,0x08,0x06,0x0C,0x70,0x01,0xF9,0xC0,0x00,0x0E,0x00,0x00,0x3B,0xE0,0x00,0xEC,0x18,0x07,0x08,0x08,0x04,0x0C,0x18,0x00,0x03,0xE0,0x00,0x00,0x00},/*"%",5*/
{0x00,0x01,0xE0,0x00,0x07,0xF0,0x03,0xF8,0x18,0x04,0x1C,0x08,0x04,0x17,0x08,0x07,0xE1,0xD0,0x03,0xC0,0xE0,0x00,0x23,0xB0,0x00,0x3C,0x08,0x00,0x20,0x08,0x00,0x00,0x10,0x00,0x00,0x00},/*"&",6*/
{0x00,0x00,0x00,0x01,0x00,0x00,0x31,0x00,0x00,0x32,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0xFF,0xC0,0x07,0x80,0xF0,0x0C,0x00,0x18,0x10,0x00,0x04,0x20,0x00,0x02,0x00,0x00,0x00},/*"(",8*/
{0x00,0x00,0x00,0x20,0x00,0x02,0x10,0x00,0x04,0x0C,0x00,0x18,0x07,0x80,0xF0,0x01,0xFF,0xC0,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*")",9*/
{0x00,0x00,0x00,0x00,0x42,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x3C,0x00,0x00,0x18,0x00,0x03,0xFF,0xC0,0x00,0x18,0x00,0x00,0x3C,0x00,0x00,0x66,0x00,0x00,0x66,0x00,0x00,0x42,0x00},/*"*",10*/
{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x01,0xFF,0xC0,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00},/*"+",11*/
{0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x31,0x00,0x00,0x32,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/
{0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00},/*"-",13*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/
{0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x1C,0x00,0x00,0x70,0x00,0x01,0x80,0x00,0x0E,0x00,0x00,0x38,0x00,0x00,0xC0,0x00,0x07,0x00,0x00,0x1C,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*"/",15*/
{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x03,0x80,0x70,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"0",16*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x03,0xFF,0xF8,0x07,0xFF,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/
{0x00,0x00,0x00,0x01,0xC0,0x38,0x02,0xC0,0x58,0x04,0x00,0x98,0x04,0x01,0x18,0x04,0x02,0x18,0x04,0x04,0x18,0x06,0x1C,0x18,0x03,0xF8,0x18,0x01,0xE0,0xF8,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/
{0x00,0x00,0x00,0x01,0xC0,0xE0,0x03,0xC0,0xF0,0x04,0x00,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x06,0x18,0x08,0x03,0xF4,0x18,0x01,0xE7,0xF0,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/
{0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x0D,0x00,0x00,0x11,0x00,0x00,0x61,0x00,0x00,0x81,0x08,0x03,0x01,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x00,0x00},/*"4",20*/
{0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0xFC,0xD0,0x06,0x08,0x08,0x06,0x10,0x08,0x06,0x10,0x08,0x06,0x10,0x08,0x06,0x18,0x38,0x06,0x0F,0xF0,0x06,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x84,0x30,0x02,0x08,0x18,0x04,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08,0x07,0x18,0x10,0x03,0x0F,0xF0,0x00,0x07,0xC0,0x00,0x00,0x00},/*"6",22*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xF8,0x06,0x07,0xF8,0x06,0x18,0x00,0x06,0xE0,0x00,0x07,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00},/*"7",23*/
{0x00,0x00,0x00,0x01,0xE1,0xE0,0x03,0xF7,0xF0,0x06,0x34,0x10,0x04,0x18,0x08,0x04,0x18,0x08,0x04,0x0C,0x08,0x04,0x0C,0x08,0x06,0x16,0x18,0x03,0xF3,0xF0,0x01,0xC1,0xE0,0x00,0x00,0x00},/*"8",24*/
{0x00,0x00,0x00,0x00,0xF8,0x00,0x03,0xFC,0x30,0x03,0x06,0x38,0x04,0x02,0x08,0x04,0x02,0x08,0x04,0x02,0x08,0x04,0x04,0x10,0x03,0x08,0xF0,0x01,0xFF,0xC0,0x00,0x7F,0x00,0x00,0x00,0x00},/*"9",25*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x38,0x00,0x70,0x38,0x00,0x70,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x1A,0x00,0x30,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*";",27*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,0x00,0x22,0x00,0x00,0x41,0x00,0x00,0x80,0x80,0x01,0x00,0x40,0x02,0x00,0x20,0x04,0x00,0x10,0x08,0x00,0x08,0x00,0x00,0x00},/*"<",28*/
{0x00,0x00,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x21,0x00,0x00,0x00,0x00},/*"=",29*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x04,0x00,0x10,0x02,0x00,0x20,0x01,0x00,0x40,0x00,0x80,0x80,0x00,0x41,0x00,0x00,0x22,0x00,0x00,0x14,0x00,0x00,0x08,0x00,0x00,0x00,0x00},/*">",30*/
{0x00,0x00,0x00,0x03,0xC0,0x00,0x04,0xC0,0x00,0x04,0x00,0x00,0x08,0x00,0x38,0x08,0x0F,0x38,0x08,0x08,0x38,0x08,0x10,0x00,0x0C,0x30,0x00,0x07,0xE0,0x00,0x03,0xC0,0x00,0x00,0x00,0x00},/*"?",31*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x00,0xFF,0xE0,0x03,0x80,0x70,0x02,0x0F,0x10,0x06,0x70,0x88,0x04,0xC0,0x88,0x04,0x83,0x08,0x04,0x7F,0x88,0x02,0xC0,0x90,0x03,0x01,0x20,0x00,0xFE,0x40},/*"@",32*/
{0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x01,0xF8,0x00,0x3E,0x08,0x01,0xC2,0x00,0x07,0x02,0x00,0x07,0xE2,0x00,0x00,0xFE,0x00,0x00,0x1F,0xC8,0x00,0x01,0xF8,0x00,0x00,0x38,0x00,0x00,0x08},/*"A",33*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x06,0x18,0x08,0x03,0xF4,0x18,0x01,0xE7,0xF0,0x00,0x01,0xE0,0x00,0x00,0x00},/*"B",34*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x02,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x10,0x06,0x00,0x20,0x07,0x80,0xC0,0x00,0x00,0x00},/*"C",35*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x02,0x00,0x10,0x03,0x80,0x70,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"D",36*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x08,0x08,0x04,0x3E,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x01,0x00,0x60,0x00,0x00,0x00},/*"E",37*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x08,0x00,0x04,0x3E,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00},/*"F",38*/
{0x00,0x00,0x00,0x00,0x3F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x02,0x08,0x04,0x02,0x08,0x02,0x03,0xF0,0x07,0x83,0xF0,0x00,0x02,0x00,0x00,0x02,0x00},/*"G",39*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x04,0x08,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08},/*"H",40*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/
{0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x07,0x00,0x00,0x01,0x04,0x00,0x01,0x04,0x00,0x01,0x04,0x00,0x03,0x07,0xFF,0xFE,0x07,0xFF,0xFC,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00},/*"J",42*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x0C,0x08,0x00,0x18,0x00,0x00,0x3E,0x00,0x04,0xC7,0x80,0x05,0x03,0xC8,0x06,0x00,0xF8,0x04,0x00,0x38,0x04,0x00,0x18,0x00,0x00,0x08},/*"K",43*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x00},/*"L",44*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0x80,0x08,0x07,0xFC,0x00,0x00,0x7F,0xC0,0x00,0x03,0xF8,0x00,0x07,0xC0,0x00,0x78,0x00,0x07,0x80,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08},/*"M",45*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0x00,0x08,0x03,0xC0,0x00,0x00,0xE0,0x00,0x00,0x38,0x00,0x00,0x1E,0x00,0x00,0x07,0x00,0x00,0x01,0xC0,0x04,0x00,0xF0,0x07,0xFF,0xF8,0x04,0x00,0x00},/*"N",46*/
{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x18,0x04,0x00,0x08,0x04,0x00,0x08,0x06,0x00,0x18,0x03,0x00,0x30,0x01,0xFF,0xE0,0x00,0x7F,0x80,0x00,0x00,0x00},/*"O",47*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x04,0x08,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x06,0x0C,0x00,0x03,0xF8,0x00,0x01,0xF0,0x00,0x00,0x00,0x00},/*"P",48*/
{0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0xFF,0xE0,0x03,0x80,0x70,0x06,0x00,0x88,0x04,0x00,0x88,0x04,0x00,0xC8,0x06,0x00,0x3C,0x03,0x00,0x3E,0x01,0xFF,0xE6,0x00,0x7F,0x84,0x00,0x00,0x00},/*"Q",49*/
{0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x08,0x08,0x04,0x08,0x00,0x04,0x0C,0x00,0x04,0x0F,0x00,0x04,0x0B,0xC0,0x06,0x10,0xF0,0x03,0xF0,0x38,0x01,0xE0,0x08,0x00,0x00,0x08},/*"R",50*/
{0x00,0x00,0x00,0x01,0xE0,0xF8,0x03,0xF0,0x30,0x06,0x30,0x10,0x04,0x18,0x08,0x04,0x18,0x08,0x04,0x0C,0x08,0x04,0x0C,0x08,0x02,0x06,0x18,0x02,0x07,0xF0,0x07,0x81,0xE0,0x00,0x00,0x00},/*"S",51*/
{0x01,0x80,0x00,0x06,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x07,0xFF,0xF8,0x04,0x00,0x08,0x04,0x00,0x00,0x04,0x00,0x00,0x06,0x00,0x00,0x01,0x80,0x00},/*"T",52*/
{0x04,0x00,0x00,0x07,0xFF,0xE0,0x07,0xFF,0xF0,0x04,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x04,0x00,0x10,0x07,0xFF,0xE0,0x04,0x00,0x00},/*"U",53*/
{0x04,0x00,0x00,0x06,0x00,0x00,0x07,0xE0,0x00,0x07,0xFE,0x00,0x04,0x1F,0xE0,0x00,0x01,0xF8,0x00,0x00,0x38,0x00,0x01,0xE0,0x04,0x3E,0x00,0x07,0xC0,0x00,0x06,0x00,0x00,0x04,0x00,0x00},/*"V",54*/
{0x04,0x00,0x00,0x07,0xE0,0x00,0x07,0xFF,0xC0,0x04,0x1F,0xF8,0x00,0x07,0xC0,0x07,0xF8,0x00,0x07,0xFF,0x80,0x04,0x3F,0xF8,0x00,0x07,0xC0,0x04,0xF8,0x00,0x07,0x00,0x00,0x04,0x00,0x00},/*"W",55*/
{0x00,0x00,0x00,0x04,0x00,0x08,0x06,0x00,0x18,0x07,0xC0,0x78,0x05,0xF1,0xC8,0x00,0x3E,0x00,0x00,0x1F,0x80,0x04,0x63,0xE8,0x07,0x80,0xF8,0x06,0x00,0x18,0x04,0x00,0x08,0x00,0x00,0x00},/*"X",56*/
{0x04,0x00,0x00,0x06,0x00,0x00,0x07,0x80,0x00,0x07,0xE0,0x08,0x04,0x7C,0x08,0x00,0x1F,0xF8,0x00,0x07,0xF8,0x00,0x18,0x08,0x04,0xE0,0x08,0x07,0x00,0x00,0x06,0x00,0x00,0x04,0x00,0x00},/*"Y",57*/
{0x00,0x00,0x00,0x01,0x00,0x08,0x06,0x00,0x38,0x04,0x00,0xF8,0x04,0x03,0xE8,0x04,0x0F,0x08,0x04,0x7C,0x08,0x05,0xF0,0x08,0x07,0xC0,0x08,0x07,0x00,0x18,0x04,0x00,0x60,0x00,0x00,0x00},/*"Z",58*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFE,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x00,0x00,0x00},/*"[",59*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x07,0x00,0x00,0x00,0xC0,0x00,0x00,0x38,0x00,0x00,0x06,0x00,0x00,0x01,0xC0,0x00,0x00,0x30,0x00,0x00,0x0E,0x00,0x00,0x01,0x00,0x00,0x00},/*"\",60*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x20,0x00,0x02,0x3F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"]",61*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
{0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01},/*"_",63*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
{0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x19,0xF8,0x00,0x1B,0x18,0x00,0x22,0x08,0x00,0x26,0x08,0x00,0x24,0x08,0x00,0x24,0x10,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x18},/*"a",65*/
{0x00,0x00,0x00,0x04,0x00,0x00,0x07,0xFF,0xF8,0x0F,0xFF,0xF0,0x00,0x18,0x18,0x00,0x10,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x18,0x00,0x1F,0xF0,0x00,0x0F,0xC0,0x00,0x00,0x00},/*"b",66*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x18,0x30,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x3C,0x08,0x00,0x1C,0x10,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x38,0x18,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x04,0x10,0x10,0x07,0xFF,0xF8,0x0F,0xFF,0xF0,0x00,0x00,0x10,0x00,0x00,0x00},/*"d",68*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x12,0x30,0x00,0x22,0x18,0x00,0x22,0x08,0x00,0x22,0x08,0x00,0x32,0x08,0x00,0x1E,0x10,0x00,0x0E,0x20,0x00,0x00,0x00},/*"e",69*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x01,0xFF,0xF8,0x03,0xFF,0xF8,0x06,0x20,0x08,0x04,0x20,0x08,0x04,0x20,0x08,0x07,0x20,0x00,0x03,0x00,0x00,0x00,0x00,0x00},/*"f",70*/
{0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x6E,0x00,0x1F,0xF3,0x00,0x31,0xB1,0x00,0x20,0xB1,0x00,0x20,0xB1,0x00,0x31,0x91,0x00,0x1F,0x13,0x00,0x2E,0x1E,0x00,0x20,0x0E,0x00,0x30,0x00},/*"g",71*/
{0x00,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x00},/*"h",72*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x06,0x3F,0xF8,0x06,0x3F,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x20,0x01,0x00,0x20,0x01,0x00,0x20,0x03,0x06,0x3F,0xFE,0x06,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"j",74*/
{0x00,0x00,0x00,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x01,0x88,0x00,0x03,0x00,0x00,0x2F,0xC0,0x00,0x38,0xF8,0x00,0x20,0x38,0x00,0x20,0x08,0x00,0x00,0x08,0x00,0x00,0x00},/*"k",75*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x07,0xFF,0xF8,0x0F,0xFF,0xF8,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/
{0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x20,0x00,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x00,0x08},/*"m",77*/
{0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x10,0x08,0x00,0x10,0x00,0x00,0x20,0x00,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x1F,0xF8,0x00,0x00,0x08,0x00,0x00,0x00},/*"n",78*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x0F,0xF0,0x00,0x18,0x30,0x00,0x30,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x08,0x00,0x18,0x30,0x00,0x0F,0xF0,0x00,0x07,0xC0,0x00,0x00,0x00},/*"o",79*/
{0x00,0x00,0x00,0x00,0x20,0x01,0x00,0x3F,0xFF,0x00,0x3F,0xFF,0x00,0x10,0x11,0x00,0x20,0x09,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x30,0x38,0x00,0x1F,0xF0,0x00,0x0F,0xC0,0x00,0x00,0x00},/*"p",80*/
{0x00,0x00,0x00,0x00,0x07,0xC0,0x00,0x1F,0xF0,0x00,0x38,0x18,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x09,0x00,0x10,0x11,0x00,0x1F,0xFF,0x00,0x3F,0xFF,0x00,0x00,0x01,0x00,0x00,0x00},/*"q",81*/
{0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x3F,0xF8,0x00,0x3F,0xF8,0x00,0x08,0x08,0x00,0x10,0x08,0x00,0x20,0x08,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x00,0x00},/*"r",82*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x78,0x00,0x1E,0x18,0x00,0x33,0x08,0x00,0x23,0x08,0x00,0x21,0x08,0x00,0x21,0x88,0x00,0x21,0x98,0x00,0x30,0xF0,0x00,0x38,0x60,0x00,0x00,0x00},/*"s",83*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0xFF,0xF0,0x03,0xFF,0xF8,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x3F,0xF0,0x00,0x7F,0xF8,0x00,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x20,0x10,0x00,0x3F,0xF8,0x00,0x7F,0xF0,0x00,0x00,0x10,0x00,0x00,0x00},/*"u",85*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00,0x00,0x3C,0x00,0x00,0x3F,0x80,0x00,0x23,0xF0,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x23,0x80,0x00,0x3C,0x00,0x00,0x30,0x00,0x00,0x20,0x00},/*"v",86*/
{0x00,0x20,0x00,0x00,0x3C,0x00,0x00,0x3F,0xE0,0x00,0x23,0xF8,0x00,0x00,0xE0,0x00,0x27,0x00,0x00,0x3E,0x00,0x00,0x3F,0xE0,0x00,0x21,0xF8,0x00,0x01,0xE0,0x00,0x3E,0x00,0x00,0x20,0x00},/*"w",87*/
{0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x20,0x08,0x00,0x38,0x38,0x00,0x3E,0x68,0x00,0x27,0x80,0x00,0x03,0xC8,0x00,0x2C,0xF8,0x00,0x38,0x38,0x00,0x20,0x18,0x00,0x20,0x08,0x00,0x00,0x00},/*"x",88*/
{0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x03,0x00,0x3C,0x01,0x00,0x3F,0x83,0x00,0x23,0xEC,0x00,0x00,0x70,0x00,0x23,0x80,0x00,0x3C,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0x00},/*"y",89*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x08,0x00,0x20,0x38,0x00,0x20,0xF8,0x00,0x23,0xE8,0x00,0x2F,0x88,0x00,0x3E,0x08,0x00,0x38,0x08,0x00,0x20,0x18,0x00,0x00,0x70,0x00,0x00,0x00},/*"z",90*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x14,0x00,0x1F,0xF7,0xFC,0x30,0x00,0x06,0x20,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00},/*"{",91*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"|",92*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x02,0x30,0x00,0x06,0x1F,0xF7,0xFC,0x00,0x14,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"}",93*/
{0x00,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00,0x08,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x0C,0x00,0x00,0x10,0x00,0x00},/*"~",94*/
};/*猪头界面图片。大小为128*64*/
const unsigned char  ZhuTou[1024] = 
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,
0x00,0x00,0x00,0x00,0x01,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x82,0x00,0x6E,0x00,0x00,0x00,0x00,0x00,0xC1,0x03,0xB1,0xF0,0x00,0x00,0x00,0x00,0x41,0x06,0x00,0x1C,0x00,0x00,0x00,0x00,0x21,0x88,0x00,0x06,0x00,0x00,0x00,
0x00,0x20,0x98,0x00,0x01,0x00,0x00,0x00,0x00,0x10,0xB0,0x00,0x00,0x80,0x00,0x00,0x00,0x10,0xA0,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00,0x00,0x10,0x20,0x00,
0x00,0x20,0x00,0x00,0x00,0x08,0x40,0x00,0x00,0x30,0x00,0x00,0x00,0x04,0x40,0x00,0x00,0x10,0x00,0x00,0x00,0x04,0x80,0x00,0x00,0x18,0x00,0x00,0x00,0x06,0x80,0x00,0x00,0x08,0x00,0x00,
0x00,0x03,0x80,0x00,0x00,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x03,0x07,0x00,
0x00,0x02,0x00,0x00,0x00,0x02,0x04,0x80,0x00,0x02,0x00,0x00,0x00,0x02,0x08,0x80,0x00,0x02,0x00,0x00,0x00,0x04,0x08,0x80,0x00,0x01,0x00,0x00,0x00,0x04,0x08,0x80,0x02,0x01,0x00,0x00,
0x00,0x04,0x08,0x80,0x02,0x01,0x00,0x00,0x00,0x04,0x04,0x80,0x02,0x00,0x00,0x00,0x00,0x04,0x07,0x00,0x02,0x00,0x80,0x00,0x00,0x04,0x03,0x00,0x00,0x00,0x80,0x00,0x00,0x0C,0x00,0x1F,
0x02,0x00,0x80,0x00,0x00,0x0C,0x00,0x11,0x02,0x00,0x80,0x00,0x00,0x0C,0x00,0x11,0x02,0x00,0x80,0x00,0x00,0x0C,0x00,0x11,0x02,0x00,0x80,0x00,0x00,0x0C,0x00,0x11,0x00,0x00,0x40,0x00,
0x00,0x08,0x00,0x15,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x11,0x02,0x08,0x40,0x00,0x00,0x08,0x00,0x11,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x19,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x09,
0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x09,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x0F,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x00,0x02,0x00,0x40,0x00,
0x00,0x08,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x08,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x0C,0x00,0x00,0x02,0x00,0x40,0x00,0x00,0x04,0x07,0x80,
0x03,0x00,0xC0,0x00,0x00,0x04,0x04,0x80,0x01,0x00,0x80,0x00,0x00,0x04,0x04,0x80,0x01,0x00,0x80,0x00,0x00,0x04,0x04,0x80,0x01,0x01,0x80,0x00,0x00,0x04,0x06,0x80,0x00,0x01,0x00,0x00,
0x00,0x04,0x03,0x80,0x00,0x02,0x00,0x00,0x00,0x04,0x01,0x00,0x00,0x06,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x02,0x00,0x00,
0x00,0x30,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x1A,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x32,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x22,0x00,0x00,0x0C,0x00,0x00,0x00,
0x00,0x61,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x40,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x41,0x80,0x02,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x0C,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x30,
0x00,0x00,0x00,0x00,0x01,0x80,0x9F,0xC0,0x00,0x00,0x00,0x00,0x01,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/* 原神界面图画,大小为128*64 */
const unsigned char gImage_Yuanshen[1024] = { /* 0X11,0X01,0X00,0X80,0X00,0X40, */
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X01,0X80,0X00,0X00,0X00,0X00,0X04,0X00,0X03,0X80,0X00,0X00,
0X00,0X00,0X06,0X00,0X0F,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XFF,0X00,0X00,0X00,
0X00,0X00,0X0F,0XFF,0XFE,0X00,0X00,0X00,0X00,0X00,0X3F,0XFF,0XFC,0X00,0X00,0X00,
0X00,0X00,0X1F,0XFF,0XF9,0X00,0X00,0X00,0X00,0X00,0X0F,0XFF,0XE3,0X80,0X00,0X00,
0X00,0X00,0X06,0X00,0X03,0X80,0X00,0X00,0X00,0X00,0X04,0X00,0X07,0X80,0X00,0X00,
0X00,0X00,0X04,0X00,0X07,0X00,0X00,0X00,0X00,0X00,0X04,0X7F,0XE6,0X00,0X00,0X00,
0X00,0X00,0X04,0X7F,0XEE,0X00,0X00,0X00,0X00,0X00,0X04,0X7F,0XCE,0X00,0X00,0X00,
0X00,0X00,0X04,0X7F,0XCE,0X00,0X00,0X00,0X00,0X00,0X04,0X2D,0XC6,0X00,0X00,0X00,
0X00,0X00,0X04,0X04,0X42,0X00,0X00,0X00,0X00,0X00,0X04,0X04,0X40,0X00,0X00,0X00,
0X00,0X00,0X04,0X04,0X40,0X00,0X00,0X00,0X00,0X00,0X05,0X04,0X7F,0XF0,0X00,0X00,
0X00,0X00,0X07,0XC4,0X7F,0XF0,0X00,0X00,0X00,0X00,0X07,0XC4,0X7F,0XF0,0X00,0X00,
0X00,0X00,0X05,0X84,0X7F,0XE0,0X00,0X00,0X00,0X00,0X04,0X04,0X7F,0X80,0X00,0X00,
0X00,0X00,0X04,0X04,0X40,0X00,0X00,0X00,0X00,0X00,0X04,0X00,0X42,0X00,0X00,0X00,
0X00,0X00,0X04,0X00,0X46,0X00,0X00,0X00,0X00,0X00,0X04,0X7F,0XEE,0X00,0X00,0X00,
0X00,0X00,0X04,0X7F,0XEE,0X00,0X00,0X00,0X00,0X00,0X04,0X7F,0XEE,0X00,0X00,0X00,
0X00,0X00,0X04,0X7F,0XC6,0X00,0X00,0X00,0X00,0X00,0X04,0X7F,0XC7,0X40,0X00,0X00,
0X00,0X00,0X04,0X20,0X07,0X00,0X00,0X00,0X00,0X00,0X04,0X00,0X07,0X80,0X00,0X00,
0X00,0X00,0X04,0X00,0X03,0X80,0X00,0X00,0X00,0X00,0X04,0X1F,0XFF,0X00,0X00,0X00,
0X00,0X00,0X04,0X1F,0XFF,0X00,0X00,0X00,0X00,0X00,0X04,0X1F,0XFE,0X00,0X00,0X00,
0X00,0X00,0X04,0X1F,0XF8,0X00,0X00,0X00,0X00,0X00,0X04,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X0E,0X3F,0XFF,0XF0,0X00,0X00,0X00,0X00,0X1F,0X3F,0XFF,0XF0,0X00,0X00,
0X00,0X00,0X3F,0XFF,0XFF,0XE0,0X00,0X00,0X00,0X00,0X0E,0X7F,0XFF,0XC0,0X00,0X00,
0X00,0X00,0X06,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X04,0XF0,0X00,0X00,0X00,0X00,
0X00,0X00,0X04,0XF3,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X73,0XF0,0X00,0X00,0X00,
0X00,0X00,0X00,0X33,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X00,
0X00,0X00,0X00,0X7F,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF8,0X00,0X00,0X00,
0X00,0X00,0X00,0X7F,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF0,0X00,0X00,0X00,
0X00,0X00,0X00,0X02,0X21,0X00,0X00,0X00,0X00,0X00,0X04,0X02,0X01,0X00,0X00,0X00,
0X00,0X00,0X04,0X06,0X01,0X80,0X00,0X00,0X00,0X00,0X0E,0X07,0X03,0XC0,0X00,0X00,
0X00,0X00,0X3F,0X0F,0X87,0XF0,0X00,0X00,0X00,0X03,0XFF,0XFF,0XEF,0XFF,0X80,0X00,
0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFE,0X00,0X00,0X00,0XFF,0X1F,0XA7,0XFC,0X00,0X00,
0X00,0X00,0X1E,0X07,0X03,0XE0,0X00,0X00,0X00,0X00,0X0E,0X07,0X01,0X80,0X00,0X00,
0X00,0X00,0X04,0X02,0X01,0X80,0X00,0X00,0X00,0X00,0X04,0X02,0X01,0X00,0X00,0X00,
0X00,0X00,0X00,0X7F,0XF1,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF8,0X00,0X00,0X00,
0X00,0X00,0X00,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFC,0X00,0X00,0X00,
0X00,0X00,0X00,0X7F,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFC,0X00,0X00,0X00,
0X00,0X00,0X00,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};/*定位图画,大小为64*64*/
const unsigned char gImage_Dingwei[512] = { /* 0X11,0X01,0X00,0X40,0X00,0X40, */
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1C,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0X80,
0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0X80,0X00,0X00,0X0F,0X00,0X00,0X01,0XF3,0XC0,
0X00,0X01,0XFF,0XF0,0X00,0X03,0XE1,0XE0,0X00,0X07,0XFF,0XFC,0X00,0X03,0XC0,0XE0,
0X00,0X1F,0XFF,0XFF,0X00,0X03,0X80,0XE0,0X00,0X7F,0X00,0X1F,0XC0,0X07,0X80,0X70,
0X00,0XFC,0X00,0X07,0XE0,0X07,0X00,0X70,0X01,0XF0,0X00,0X01,0XF8,0X07,0X00,0X70,
0X03,0XE0,0X00,0X00,0XFC,0X0F,0X00,0X38,0X07,0XC0,0X00,0X00,0X3E,0X0F,0X00,0X38,
0X07,0X80,0X00,0X00,0X1F,0X0E,0X00,0X38,0X0F,0X00,0X00,0X00,0X07,0XCE,0X00,0X38,
0X1E,0X00,0X00,0X00,0X03,0XEE,0X00,0X38,0X1C,0X00,0X00,0X00,0X01,0XFE,0X00,0X3C,
0X3C,0X00,0X0E,0X00,0X00,0XFE,0X00,0X1C,0X38,0X00,0X7F,0XC0,0X00,0X7E,0X00,0X1C,
0X78,0X00,0XFF,0XE0,0X00,0X1E,0X00,0X1C,0X70,0X01,0XFF,0XF0,0X00,0X0F,0X00,0X1C,
0X70,0X03,0XC0,0XF8,0X00,0X07,0X80,0X1C,0X70,0X07,0X80,0X38,0X00,0X03,0XC0,0X1C,
0X70,0X07,0X00,0X3C,0X00,0X01,0XE0,0X1C,0XF0,0X07,0X00,0X1C,0X00,0X00,0XF0,0X1C,
0XF0,0X0F,0X00,0X1C,0X00,0X00,0X78,0X1C,0XF0,0X0F,0X00,0X1C,0X00,0X00,0X7C,0X1C,
0XF0,0X0F,0X00,0X1C,0X00,0X00,0X78,0X1C,0XF0,0X07,0X00,0X1C,0X00,0X00,0XF0,0X1C,
0X70,0X07,0X00,0X3C,0X00,0X01,0XE0,0X1C,0X70,0X07,0X80,0X78,0X00,0X03,0XC0,0X1C,
0X70,0X03,0XC0,0XF8,0X00,0X07,0X80,0X1C,0X70,0X01,0XFF,0XF0,0X00,0X0F,0X00,0X1C,
0X78,0X00,0XFF,0XE0,0X00,0X1E,0X00,0X1C,0X38,0X00,0X7F,0X80,0X00,0X7E,0X00,0X1C,
0X3C,0X00,0X00,0X00,0X00,0XFE,0X00,0X1C,0X1C,0X00,0X00,0X00,0X01,0XFE,0X00,0X3C,
0X1E,0X00,0X00,0X00,0X03,0XEE,0X00,0X38,0X0F,0X00,0X00,0X00,0X07,0XCE,0X00,0X38,
0X07,0X80,0X00,0X00,0X1F,0X8E,0X00,0X38,0X07,0XC0,0X00,0X00,0X3E,0X0F,0X00,0X38,
0X03,0XE0,0X00,0X00,0XFC,0X0F,0X00,0X38,0X01,0XF0,0X00,0X01,0XF8,0X07,0X00,0X70,
0X00,0XFC,0X00,0X07,0XE0,0X07,0X00,0X70,0X00,0X3F,0X00,0X3F,0XC0,0X07,0X80,0X70,
0X00,0X1F,0XFF,0XFF,0X00,0X07,0X80,0XE0,0X00,0X07,0XFF,0XFC,0X00,0X03,0XC0,0XE0,
0X00,0X01,0XFF,0XF0,0X00,0X03,0XC1,0XE0,0X00,0X00,0X06,0X00,0X00,0X01,0XE3,0XC0,
0X00,0X00,0X00,0X00,0X00,0X01,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0X80,
0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X1C,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};/*QQ图画,大小为64*64*/
const unsigned char gImage_QQ[512] = { /* 0X11,0X01,0X00,0X40,0X00,0X40, */
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFE,0X00,0X00,
0X00,0X00,0X00,0X00,0X07,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X1F,0XFE,0X00,0X00,
0X00,0X00,0X00,0X00,0X7F,0XFC,0X00,0X00,0X00,0X00,0X00,0X18,0XFF,0XF8,0X00,0X00,
0X00,0X00,0X00,0XFF,0XFF,0XF8,0X03,0X80,0X00,0X00,0X01,0X81,0XFF,0XFE,0X1F,0XC0,
0X00,0X00,0X3F,0XC0,0XFF,0XFF,0X9F,0XC0,0X00,0X01,0XFF,0XE0,0X78,0X1F,0XDF,0XE0,
0X00,0X07,0XFF,0XF0,0X30,0X01,0XEF,0XE0,0X00,0X0F,0XFF,0XF8,0X10,0X30,0X77,0XE0,
0X00,0X1F,0XFF,0XFC,0X1F,0XFC,0X3B,0XF0,0X00,0X7F,0XFF,0XFE,0X08,0X06,0X1F,0XF0,
0X00,0X7F,0XFF,0XEE,0X0C,0X02,0X0D,0XF0,0X00,0XFF,0XFF,0XC7,0X04,0X02,0X06,0XF0,
0X01,0XFF,0XFF,0X87,0X04,0X03,0X02,0XF0,0X01,0XFF,0XBF,0X87,0X86,0X03,0X03,0X70,
0X03,0XFC,0X07,0X87,0X82,0X03,0X01,0X70,0X03,0XF8,0X03,0X07,0X82,0X06,0X01,0X60,
0X07,0XF8,0X01,0X03,0X83,0XFC,0X01,0XE0,0X07,0XF8,0XE1,0X03,0X82,0X00,0X00,0XA0,
0X07,0XF8,0X33,0X01,0X83,0X00,0X00,0X80,0X07,0XFE,0X06,0X01,0X83,0X00,0X00,0X80,
0X0F,0XFF,0XFE,0X01,0XC1,0X00,0X00,0X80,0X0F,0XFF,0XFE,0X01,0XC1,0X00,0X00,0X80,
0X07,0XFF,0XFE,0X01,0X81,0X00,0X00,0X80,0X07,0XFE,0X0E,0X01,0X81,0X00,0X00,0X80,
0X07,0XF8,0XC2,0X01,0X81,0X00,0X00,0X80,0X07,0XF8,0X81,0X01,0X81,0X00,0X00,0XA0,
0X07,0XF8,0XC1,0X03,0X83,0X00,0X01,0XE0,0X03,0XF8,0X03,0X03,0X83,0X00,0X01,0X60,
0X03,0XFC,0X07,0X07,0X82,0X00,0X01,0X70,0X01,0XFF,0XBF,0X07,0X02,0X00,0X03,0X70,
0X01,0XFF,0XFF,0X8F,0X06,0X00,0X02,0XF0,0X00,0XFF,0XFF,0X87,0X04,0X00,0X06,0XF0,
0X00,0X7F,0XFF,0XC6,0X04,0X00,0X0D,0XF0,0X00,0X3F,0XFF,0XCE,0X0C,0X00,0X1B,0XF0,
0X00,0X1F,0XFF,0XFC,0X08,0X00,0X3B,0XF0,0X00,0X0F,0XFF,0XF8,0X10,0X00,0XF7,0XE0,
0X00,0X03,0XFF,0XF0,0X30,0X03,0XEF,0XE0,0X00,0X00,0XFF,0XE0,0X7F,0XFF,0XDF,0XE0,
0X00,0X00,0X0F,0XC0,0XFF,0XFF,0X1F,0XC0,0X00,0X00,0X01,0X81,0XFF,0XFC,0X1F,0XC0,
0X00,0X00,0X00,0XE7,0XFF,0XF0,0X03,0X80,0X00,0X00,0X00,0X3C,0XFF,0XF8,0X00,0X00,
0X00,0X00,0X00,0X00,0X3F,0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0XFE,0X00,0X00,
0X00,0X00,0X00,0X00,0X03,0XFF,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7C,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};/*音乐图画,大小为64*64*/
const unsigned char gImage_Yinyue[512] = { /* 0X11,0X01,0X00,0X40,0X00,0X40, */
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XFF,0XFE,0X00,0X00,0X00,
0X00,0X00,0X07,0XFF,0XFF,0XC0,0X00,0X00,0X00,0X00,0X1F,0X80,0X03,0XF0,0X00,0X00,
0X00,0X00,0X7C,0X00,0X00,0X7C,0X00,0X00,0X00,0X00,0XF0,0X00,0X00,0X1E,0X00,0X00,
0X00,0X01,0XC0,0X00,0X00,0X07,0X00,0X00,0X00,0X03,0X80,0X01,0XF8,0X03,0XC0,0X00,
0X00,0X0F,0X00,0X01,0XFF,0X00,0XE0,0X00,0X00,0X1C,0X00,0X00,0X07,0XC0,0X70,0X00,
0X00,0X18,0X00,0X00,0X01,0XF0,0X30,0X00,0X00,0X38,0X00,0X00,0X00,0X78,0X18,0X00,
0X00,0X70,0X00,0X00,0X00,0X1C,0X1C,0X00,0X00,0XE0,0X00,0X00,0X00,0X0E,0X0E,0X00,
0X00,0XC0,0X00,0X00,0X00,0X07,0X06,0X00,0X01,0XC0,0X00,0X00,0X00,0X03,0X87,0X00,
0X01,0X80,0X00,0X00,0X00,0X01,0X83,0X00,0X03,0X80,0X00,0X00,0X00,0X01,0XC1,0X80,
0X03,0X00,0X00,0X00,0X00,0X00,0XC1,0X80,0X03,0X00,0X00,0X00,0X00,0X00,0X61,0XC0,
0X06,0X00,0X00,0X00,0X00,0X00,0X60,0XC0,0X06,0X00,0X00,0X0F,0XE0,0X00,0X70,0XC0,
0X06,0X00,0X00,0X1F,0XF0,0X00,0X30,0XC0,0X06,0X00,0X00,0X3F,0XF8,0X00,0X30,0XE0,
0X0E,0X00,0X00,0X7F,0XFC,0X00,0X30,0X60,0X0C,0X00,0X00,0X7C,0X7C,0X00,0X30,0X60,
0X0C,0X00,0X00,0XF8,0X3E,0X00,0X38,0X60,0X0C,0X10,0X00,0XF0,0X1E,0X00,0X38,0X60,
0X0C,0X30,0X00,0XF0,0X1E,0X00,0X18,0X60,0X0C,0X38,0X00,0XF8,0X1E,0X00,0X00,0X60,
0X0C,0X38,0X00,0X78,0X3E,0X00,0X00,0X60,0X0C,0X18,0X00,0X7C,0X7C,0X00,0X00,0X60,
0X06,0X18,0X00,0X7F,0XFC,0X00,0X00,0X60,0X06,0X18,0X00,0X3F,0XF8,0X00,0X00,0XE0,
0X06,0X18,0X00,0X1F,0XF0,0X00,0X00,0XC0,0X06,0X0C,0X00,0X07,0XC0,0X00,0X00,0XC0,
0X07,0X0C,0X00,0X00,0X00,0X00,0X00,0XC0,0X03,0X0E,0X00,0X00,0X00,0X00,0X01,0XC0,
0X03,0X06,0X00,0X00,0X00,0X00,0X01,0X80,0X03,0X87,0X00,0X00,0X00,0X00,0X03,0X80,
0X01,0X83,0X80,0X00,0X00,0X00,0X03,0X00,0X01,0XC1,0XC0,0X00,0X00,0X00,0X07,0X00,
0X00,0XC0,0XE0,0X00,0X00,0X00,0X06,0X00,0X00,0X60,0X70,0X00,0X00,0X00,0X0E,0X00,
0X00,0X70,0X38,0X00,0X00,0X00,0X1C,0X00,0X00,0X38,0X1E,0X00,0X00,0X00,0X38,0X00,
0X00,0X1C,0X0F,0X80,0X00,0X00,0X70,0X00,0X00,0X0E,0X03,0XF8,0X00,0X00,0XE0,0X00,
0X00,0X07,0X00,0XFF,0X80,0X01,0XC0,0X00,0X00,0X03,0X80,0X0F,0X00,0X03,0X80,0X00,
0X00,0X01,0XE0,0X00,0X00,0X0F,0X00,0X00,0X00,0X00,0XF0,0X00,0X00,0X1E,0X00,0X00,
0X00,0X00,0X3E,0X00,0X00,0XF8,0X00,0X00,0X00,0X00,0X0F,0XC0,0X07,0XF0,0X00,0X00,
0X00,0X00,0X03,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X7F,0XFC,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};/*电话图画,大小为64*64*/
const unsigned char gImage_Dianhua[512] = { /* 0X11,0X01,0X00,0X40,0X00,0X40, */
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X7F,0XFF,0X00,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XE0,0X00,0X00,
0X00,0X00,0X0F,0XFE,0X3F,0XF8,0X00,0X00,0X00,0X00,0X3F,0XC0,0X01,0XFE,0X00,0X00,
0X00,0X00,0X7E,0X00,0X00,0X3F,0X00,0X00,0X00,0X00,0XF8,0X00,0X00,0X0F,0XC0,0X00,
0X00,0X03,0XE0,0X00,0X00,0X03,0XE0,0X00,0X00,0X07,0XC0,0X00,0X00,0X01,0XF0,0X00,
0X00,0X0F,0X00,0X00,0X00,0X00,0X78,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X3C,0X00,
0X00,0X1C,0X00,0X00,0X00,0X00,0X1C,0X00,0X00,0X3C,0X00,0X00,0X00,0X00,0X1E,0X00,
0X00,0X78,0X00,0XC0,0X00,0X00,0X0F,0X00,0X00,0X70,0X07,0XFC,0X00,0X00,0X07,0X00,
0X00,0XE0,0X1F,0XFF,0X00,0X00,0X03,0X80,0X00,0XE0,0X3C,0X0F,0X80,0X00,0X03,0X80,
0X01,0XC0,0X38,0X03,0XE0,0X00,0X01,0XC0,0X01,0XC0,0X70,0X00,0XF0,0X00,0X01,0XC0,
0X01,0XC0,0X70,0X00,0X78,0X00,0X01,0XC0,0X03,0X80,0X60,0X0E,0X3C,0X00,0X00,0XE0,
0X03,0X80,0X78,0X1F,0X0E,0X00,0X00,0XE0,0X03,0X80,0X3F,0XBF,0XC7,0X00,0X00,0XE0,
0X03,0X80,0X1F,0XF1,0XE3,0X80,0X00,0XE0,0X07,0X00,0X03,0XE0,0XF1,0XC0,0X00,0X70,
0X07,0X00,0X00,0X00,0X79,0XE0,0X00,0X70,0X07,0X00,0X00,0X00,0X3C,0XE0,0X00,0X70,
0X07,0X00,0X00,0X00,0X1C,0X70,0X00,0X70,0X07,0X00,0X00,0X00,0X0E,0X78,0X00,0X70,
0X07,0X00,0X00,0X00,0X06,0X38,0X00,0X70,0X07,0X00,0X00,0X00,0X07,0X1C,0X00,0X70,
0X03,0X80,0X00,0X00,0X0E,0X1C,0X00,0XE0,0X03,0X80,0X00,0X00,0X1E,0X0C,0X00,0XE0,
0X03,0X80,0X00,0X00,0X1C,0X0C,0X00,0XE0,0X03,0X80,0X00,0X00,0X18,0X0E,0X00,0XE0,
0X03,0XC0,0X00,0X00,0X1C,0X0E,0X01,0XE0,0X01,0XC0,0X00,0X00,0X1C,0X0C,0X01,0XC0,
0X01,0XC0,0X00,0X00,0X1C,0X0C,0X01,0XC0,0X00,0XE0,0X00,0X00,0X1C,0X1C,0X03,0XC0,
0X00,0XE0,0X00,0X00,0X0C,0X3C,0X03,0X80,0X00,0X70,0X00,0X00,0X0F,0XF8,0X07,0X00,
0X00,0X78,0X00,0X00,0X07,0XE0,0X0F,0X00,0X00,0X38,0X00,0X00,0X03,0XC0,0X0E,0X00,
0X00,0X3C,0X00,0X00,0X00,0X00,0X1E,0X00,0X00,0X1E,0X00,0X00,0X00,0X00,0X3C,0X00,
0X00,0X0F,0X00,0X00,0X00,0X00,0X78,0X00,0X00,0X07,0X80,0X00,0X00,0X00,0XF0,0X00,
0X00,0X03,0XE0,0X00,0X00,0X03,0XE0,0X00,0X00,0X01,0XF0,0X00,0X00,0X07,0XC0,0X00,
0X00,0X00,0XFC,0X00,0X00,0X1F,0X80,0X00,0X00,0X00,0X3F,0X80,0X00,0XFE,0X00,0X00,
0X00,0X00,0X1F,0XF0,0X07,0XFC,0X00,0X00,0X00,0X00,0X03,0XFF,0XFF,0XE0,0X00,0X00,
0X00,0X00,0X00,0XFF,0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X07,0XF0,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
};#endif

main函数

/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "iwdg.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "oled.h"
//#include "oledfont.h"
//#define  USART_RX_BUF_SIZE 100//#include "stdio.h"
/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */uint8_t len;                              //串口接收的数据长度/* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP */void SystemClock_Config(void);
/* USER CODE BEGIN PFP */void Proc2msTask(void)        //2ms任务
{static uint8_t i=0;if(Get_2ms_Flag() == 1)     //获取2ms标志位{Clear_2ms_Flag();      //清除2ms标志位//2mstask codei++;if(i==4)                //1s扫描一处按键状态{i=0;Key_One_Scan(Key_Name_Key0,Key0_Up_Task,Key0_Down_Task);         //扫描Key0状态Key_One_Scan(Key_Name_Key1,Key1_Up_Task,Key1_Down_Task);         //扫描Key1状态Key_One_Scan(Key_Name_Key2,Key2_Up_Task,Key2_Down_Task);         //扫描Key2状态Key_One_Scan(Key_Name_WKUP,WWKUP_Up_Task,WKUP_Down_Task);        //扫描WKUP状态(*table[Menu_Index].current_operation)();   //oled刷新显示函数  }if(USART_RX_STA&0x8000){					   len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度printf("\r\n您发送的消息为:\r\n");HAL_UART_Transmit_IT(&huart1,(uint8_t*)USART_RX_BUF,len);	//发送接收到的数据HAL_UART_Transmit_IT(&huart1,(uint8_t*)USART_RX_BUF,USART_RX_STA&0x3fff);	//这样也可以,和上一行原理一样
//			while(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_TC)!=SET);		//等待发送结束   //如果使用阻塞的方式发送,则需要这一句。printf("\r\n\r\n");//插入换行                                    //但由于这是在2ms函数中,所以不推荐阻塞的方式发送USART_RX_STA=0;}}
}void Proc1sTask(void)       //1s任务
{if(Get_1s_Flag() == 1)     //获取1s标志位{Clear_1s_Flag();         //清除1s标志位//1stask codeHAL_IWDG_Refresh(&hiwdg);printf("独立看门狗喂狗成功\r\n");}      
}
/* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 *//* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM10_Init();MX_USART1_UART_Init();MX_IWDG_Init();/* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(&htim10);
HAL_UART_Receive_IT(&huart1, (unsigned char* )aRxBuffer, 1);oled_init();       //初始化oled显示oled_display_on(); //开启oled显示printf("System is running \r\n");/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){Proc2msTask();       //调用2ms任务Proc1sTask();        //调用1s任务/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

代码思路讲解

代码篇幅有点长,所以但是大部分在之前都出现过,所以我们来讲述一下精华部分:

在这里插入图片描述
在这里插入图片描述

  • 实现菜单功能的方式有很多。之前我做过一个用if语句和switch实现的简单菜单,但这种只能适用于简单的场景,多余有多级菜单,多个同级菜单的情况并不友好,所以这次我们使用索引的方式。
  • 每一个界面都有一个索引值(可以理解为编号),对应的也会有跳转的下一个同级界面、确认键按下的界面、取消键按下的界面、当前界面需要显示的内容。
  • 我们将其封装为一个结构体,这样,有多少个界面,我们就可以创建多少的结构体,再创建一个结构体数组table,就可以实现对多个界面的管理,进而实现按键控制界面的切换。
  • 然后每隔一段时间扫描按键,扫描完成时调用当前界面需要执行的函数就可以实现以上功能。
    在这里插入图片描述

如图为按键扫描完成后oled显示当前界面的内容的函数:
这是一个函数指针调用,调用结构体数组table中索引值为Menu_Index的结构体功能函数

以上就是本期的全部内容,由于篇幅过长,关于oled文字取模,图像取模的部分,这里不做教学,我们下次单独再出一期吧(也不一定,看我心情)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/171547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT visual stdio加载动态库报错126问题

报错126是找不到指定的模块 QT 查看构建目录&#xff0c;将依赖的动态库放到该目录下即可成功 visual stdio将依赖的动态库放到运行目录 在vs中使用导出类的动态库时&#xff0c;不但需要将对应的.dll放到对应的目录下&#xff0c;还需要将该动态库对应的.lib添加到如下配置才…

【SAS Planet 下载地图瓦片】

SAS Planet是一位俄罗斯爱好者创建的的开源应用&#xff0c;该应用可以浏览与下载主流网络地图&#xff0c;包括Google地图、Google地球、Bing地图、Esri 地图、Yandex地图等&#xff0c;支持100多图源。 安装包下载地址&#xff1a;https://www.sasgis.org/download/ github…

337. 打家劫舍III (二叉树)

题目 题解 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def rob(self, root: Optional[TreeNode]) ->…

指针的进阶

重中之重&#xff1a; 目录 1.字符指针&#xff1a; 2.指针数组 3.数组指针 4.数组参数、指针参数 5.函数指针 1.字符指针&#xff1a; 一般实现&#xff1a; int main() {char ch w;char *pc &ch;*pc w;return 0; } 二班实现&#xff1a; int main() {const c…

什么是闭包和作用域链?

1. 什么是闭包 闭包指的是那些引用了另一个函数作用域中变量的函数&#xff0c;通常是在嵌套函数中实现的。 举个栗子&#xff0c;createCounter 接受一个参数 n&#xff0c;然后返回一个匿名函数&#xff0c;这个匿名函数是闭包&#xff0c;它可以访问外部函数 createCounte…

智能优化算法应用:基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鲸鱼算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鲸鱼算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Nginx常见的中间件漏洞

目录 1、Nginx文件名逻辑漏洞 2、Nginx解析漏洞 3、Nginx越权读取缓存漏洞 这里需要的漏洞环境可以看&#xff1a;Nginx 配置错误导致的漏洞-CSDN博客 1、Nginx文件名逻辑漏洞 该漏洞利用条件有两个&#xff1a; Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 php-fpm.conf中的s…

百度 Comate 终于支持 IntelliJ IDEA 了

大家好&#xff0c;我是伍六七。 对于一直关注 AI 编程的阿七来说&#xff0c;编程助手绝对是必不可少的&#xff0c;除了 GitHub Copilot 之外&#xff0c;国内百度的 Comate 一直是我关注的重点。 但是之前&#xff0c;Comate 还支持 VS code&#xff0c;并不支持 IntelliJ…

mybatis的使用,mybatis的实现原理,mybatis的优缺点,MyBatis缓存,MyBatis运行的原理,MyBatis的编写方式

文章目录 MyBatis简介结构图Mybatis缓存&#xff08;一级缓存、二级缓存&#xff09;MyBatis是什么&#xff1f;mybatis的实现原理JDBC编程有哪些不足之处&#xff0c;MyBatis是如何解决这些问题的&#xff1f;Mybatis优缺点优点缺点映射关系 MyBatis的解析和运行原理MyBatis的…

【单片机学习笔记】STC8H1K08参考手册学习笔记

STC8H1K08参考手册学习笔记 STC8H系列芯片STC8H1K08开发环境串口烧录 STC8H系列芯片 STC8H 系列单片机是不需要外部晶振和外部复位的单片机&#xff0c;是以超强抗干扰/超低价/高速/低功耗为目标的 8051 单片机,在相同的工作频率下,STC8H 系列单片机比传统的 8051约快12 倍速度…

数组题目:645. 错误的集合、 697. 数组的度、 448. 找到所有数组中消失的数字、442. 数组中重复的数据 、41. 缺失的第一个正数

645. 错误的集合 思路&#xff1a; 我们定义一个数组cnt&#xff0c;记录每个数出现的次数。然后我们遍历数组&#xff0c;从1开始&#xff0c;如果cnt[i] 0 那就说明这个是错误的数&#xff0c;如果 cnt[i] 2&#xff0c;那就说明是重复的数。 代码&#xff1a; class So…

RabbitMQ之消费者可靠性

文章目录 前言一、消费者确认机制二、失败重试机制三、失败处理策略四、业务幂等性唯一消息ID业务判断 五、兜底方案总结 前言 当RabbitMQ向消费者投递消息以后&#xff0c;需要知道消费者的处理状态如何。因为消息投递给消费者并不代表就一定被正确消费了&#xff0c;可能出现…

3DMAX平滑布尔插件超级布尔工具使用教程

3dMax平滑布尔插件SmoothBoolean用于在ProBoolean网格之间创建平滑过渡的3dMax插件。再也不需要花几个小时来清理用布尔切割创建的混乱拓扑了。如果你只是想让你的三维模型在渲染图上看起来很棒&#xff0c;或者你需要为游戏烘焙一些东西&#xff0c;那么你就不必浪费时间来建模…

Kotlin学习——kt中的类,数据类 枚举类 密封类,以及对象

Kotlin 是一门现代但已成熟的编程语言&#xff0c;旨在让开发人员更幸福快乐。 它简洁、安全、可与 Java 及其他语言互操作&#xff0c;并提供了多种方式在多个平台间复用代码&#xff0c;以实现高效编程。 https://play.kotlinlang.org/byExample/01_introduction/02_Functio…

个人硬件测试用例入门设计

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 &#x1f324;️功能测试 进行新增、…

Java中绕过SSL/TLS验证:开发与风险透视

警告: 本文提供的方法绕过SSL/TLS证书验证&#xff0c;这在某些开发场景下可能是有用的&#xff0c;但使用这些方法会导致严重的安全隐患。在生产环境中&#xff0c;你应该始终验证SSL/TLS证书以确保数据的安全传输。 引言 在日常的软件开发中&#xff0c;我们经常需要与其他服…

FFmpeg命令分隔视频

有一个视频如a.mp4&#xff0c;此视频采用帧率为30生成&#xff0c;共有299帧&#xff0c;这里通过FFmpeg命令分隔成1秒一个个的小视频&#xff0c;即每个小视频帧数为30帧。 用到的FFmpeg参数如下所示&#xff1a; (1).-i:指定输入视频文件的名称&#xff1b; (2).-c:指…

name 属性:提高 Vue 应用可维护性的关键

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

对称加密与非对称加密的区别是什么?

对称加密与非对称加密的区别是什么&#xff1f; 对称加密概念&#xff1a;好处和坏处&#xff1a;基本原理 非对称加密概念&#xff1a;工作原理&#xff1a; 两者区别安全性处理速度密钥管理通信双方数量 对称加密 概念&#xff1a; 同一个密钥可以同时用来对信息进行加密和…

Sublime Text 3运行 Python文件出现中文打印乱码的解决方式

很多小伙伴在下载安装好sublime这个编辑器后发现&#xff0c;它虽然能够用来打开python脚本和创建文件编写代码&#xff0c;但是却不能够来运行python代码和程序。所以下面这一篇文章就是会来分享一下&#xff0c;sublime编辑器无法运行python的解决方法&#xff0c;感兴趣的话…