
这个就没什么好说的
参考代码
/*=========================================================================== 这个是关于eps32 硬件I2C 的学习 esp32一共有2个I2C控制器,都可设置为主机或则是从机 串行数据线SDA 串行时钟线SCL 都需要上拉电阻 (1k~10k) 频率越高,电阻越小(但不要小于1K) 主要应用在1英尺(30cm)的范围内多距离通信 硬件I2C0 : SDA: 19 SCL:18 硬件I2C1 : SDA: 26 SCL:25 硬件I2C 可以配置为任意的 IO口 使用 !!!!!!! ============================================================================*/ #include "I2C_Study.h" #define I2C0_SDA 18 #define I2C0_SCL 19 #define I2C1_SDA 26 #define I2C1_SCL 25 #define OLED_ADDRESS 0x3c #define OLED_CMD 0 #define OLED_DATA 1 u8 OLED_GRAM[144][8]; void I2C_Init( void ) { i2c_config_t my_i2c={ .mode = I2C_MODE_MASTER, //设置主机模式 .sda_io_num = I2C0_SDA, //设置I2C的SDA 引脚 .sda_pullup_en = GPIO_PULLUP_ENABLE, //上拉SDA 引脚 .scl_io_num = I2C0_SCL, //设置I2C的SCL 引脚 .scl_pullup_en = GPIO_PULLUP_ENABLE, //上拉SCL 引脚 .master.clk_speed = 100000, //设置时钟频率是1us , 主机模式下最大频率不能超过4MHz .clk_flags = 0, //可以选择时钟源,设置为0 ,时钟分配器自动选择一个满足频率和能力要求的时钟源 }; i2c_param_config(I2C_NUM_0,&my_i2c); //初始化I2C0 //安装I2C驱动:主机模式下,从机的接收和发送缓冲区参数设置为disable i2c_driver_install(I2C_NUM_0,I2C_MODE_MASTER,0,0,0); } void OLED_WR_Byte(uint8_t dat, uint8_t mode) { int ret; uint8_t write_buf[2] = {(mode==1)?0x40:0x00, dat}; ret = i2c_master_write_to_device(I2C_NUM_0, OLED_ADDRESS, write_buf, sizeof(write_buf),1000 / portTICK_PERIOD_MS); if (ret != ESP_OK) { printf("%x\r\n",ret); } } void OLED_Init() { OLED_WR_Byte(0xAE, OLED_CMD); //--display off OLED_WR_Byte(0x00, OLED_CMD); //---set low column address OLED_WR_Byte(0x10, OLED_CMD); //---set high column address OLED_WR_Byte(0x40, OLED_CMD); //--set start line address OLED_WR_Byte(0xB0, OLED_CMD); //--set page address OLED_WR_Byte(0x81, OLED_CMD); // contract control OLED_WR_Byte(0xFF, OLED_CMD); //--128 OLED_WR_Byte(0xA1, OLED_CMD); // set segment remap OLED_WR_Byte(0xA6, OLED_CMD); //--normal / reverse OLED_WR_Byte(0xA8, OLED_CMD); //--set multiplex ratio(1 to 64) OLED_WR_Byte(0x3F, OLED_CMD); //--1/32 duty OLED_WR_Byte(0xC8, OLED_CMD); // Com scan direction OLED_WR_Byte(0xD3, OLED_CMD); //-set display offset OLED_WR_Byte(0x00, OLED_CMD); // OLED_WR_Byte(0xD5, OLED_CMD); // set osc division OLED_WR_Byte(0x80, OLED_CMD); // OLED_WR_Byte(0xD8, OLED_CMD); // set area color mode off OLED_WR_Byte(0x05, OLED_CMD); // OLED_WR_Byte(0xD9, OLED_CMD); // Set Pre-Charge Period OLED_WR_Byte(0xF1, OLED_CMD); // OLED_WR_Byte(0xDA, OLED_CMD); // set com pin configuartion OLED_WR_Byte(0x12, OLED_CMD); // OLED_WR_Byte(0xDB, OLED_CMD); // set Vcomh OLED_WR_Byte(0x30, OLED_CMD); // OLED_WR_Byte(0x8D, OLED_CMD); // set charge pump enable OLED_WR_Byte(0x14, OLED_CMD); // OLED_WR_Byte(0xAF, OLED_CMD); //--turn on oled panel } /// @brief 坐标设置 /// @param x 列地址 /// @param y 页地址 void OLED_Set_Pos(unsigned char x, unsigned char y) { //设置页地址 OLED_WR_Byte(0xb0 + y, OLED_CMD); //设置页的开始地址 ,一页有8行(像素点)0xb0~0xb7,表示页地址,一共有8页 //设置列地址:将一个8位地址拆开传输,比便于设备识别这是一个地址的设置指令 OLED_WR_Byte(((x & 0xf0) >> 4) | 0x10, OLED_CMD); //设置高(4位) 开始列地址(就是该指令存储了一个地址的高四位) ; 取出一个列x 高四位地址,和0x10 拼接,(0x10~0x1F)表示 这个是地址指令, 并且地址的高4位在这个指令的低4位 OLED_WR_Byte((x & 0x0f), OLED_CMD); //设置低(4位) 开始列地址(就是该指令存储了一个地址的低四位) ; 取出一个列x 低四位地址,和0x00 拼接,(0x00~0x0F)表示 这个是地址指令, 并且地址的低4位在这个指令的低4位 } // 开启OLED显示 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 } // 关闭OLED显示 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 } // 清屏函数,清完屏,整个屏幕是黑色的!和没点亮一样!!! void OLED_Clear(void) { u8 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(0, OLED_DATA); } // 更新显示 } void OLED_On(void) { u8 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(1, OLED_DATA); } // 更新显示 } //画点 //x:0~127 //y:0~63 //t:1 填充 0,清空 void OLED_DrawPoint(u8 x,u8 y,u8 t) { //页寻址 u8 i,m,n; i=y/8; //计算出在第几页 m=y%8; //这个结果只能是:0~7 n=1<<m; //决定了 1 左移 0~7 位 , 也就是具体的这个1在8位数据中的位置,所点亮的那个点的位置 if(t){OLED_GRAM[x][i]|=n;} else { OLED_GRAM[x][i]=~OLED_GRAM[x][i]; OLED_GRAM[x][i]|=n; OLED_GRAM[x][i]=~OLED_GRAM[x][i]; } //设置显示坐标的位置 OLED_Set_Pos(x,i); //写入数据 OLED_WR_Byte(OLED_GRAM[x][i], OLED_DATA); } //画线 //x1,y1:起点坐标 //x2,y2:结束坐标 void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode) { u16 t; int xerr=0,yerr=0,delta_x,delta_y,distance; int incx,incy,uRow,uCol; delta_x=x2-x1; //计算坐标增量 delta_y=y2-y1; uRow=x1;//画线起点坐标 uCol=y1; if(delta_x>0)incx=1; //设置单步方向 else if (delta_x==0)incx=0;//垂直线 else {incx=-1;delta_x=-delta_x;} if(delta_y>0)incy=1; else if (delta_y==0)incy=0;//水平线 else {incy=-1;delta_y=-delta_x;} if(delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴 else distance=delta_y; for(t=0;t<distance+1;t++) { OLED_DrawPoint(uRow,uCol,mode);//画点 xerr+=delta_x; yerr+=delta_y; if(xerr>distance) { xerr-=distance; uRow+=incx; } if(yerr>distance) { yerr-=distance; uCol+=incy; } } } //x,y:圆心坐标 //r:圆的半径 void OLED_DrawCircle(uint8_t x,uint8_t y,uint8_t r) { int a, b,num; a = 0; b = r; while(2 * b * b >= r * r) { OLED_DrawPoint(x + a, y - b,1); OLED_DrawPoint(x - a, y - b,1); OLED_DrawPoint(x - a, y + b,1); OLED_DrawPoint(x + a, y + b,1); OLED_DrawPoint(x + b, y + a,1); OLED_DrawPoint(x + b, y - a,1); OLED_DrawPoint(x - b, y - a,1); OLED_DrawPoint(x - b, y + a,1); a++; num = (a * a + b * b) - r*r;//计算画的点离圆心的距离 if(num > 0) { b--; a--; } } } //显示汉字 //x: x坐标,列 //y: y坐标,页 //z: 字标,也就是对应的在数组中的哪一个字(所对应的字模数据) //sizey: 字号 void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t z,uint8_t sizey) { uint16_t i,size1=(sizey/8+((sizey%8)?1:0))*sizey; for(i=0;i<size1;i++) { if(i%sizey==0) OLED_Set_Pos(x,y++); //换行,或则说是设置起始坐标 if(sizey==16) OLED_WR_Byte(Hzk[z][i],OLED_DATA);//16x16字号 // else if(sizey==xx) OLED_WR_Byte(xxx[c][i],OLED_DATA);//用户添加字号 else return; } } //显示图片 //x,y显示坐标 //sizex,sizey,图片长宽 //BMP:要显示的图片 void OLED_DrawBMP(uint8_t x,uint8_t y,uint8_t sizex, uint8_t sizey,uint8_t BMP[]) { uint16_t j=0; u8 i,m; sizey=sizey/8+((sizey%8)?1:0); for(i=0;i<sizey;i++) { OLED_Set_Pos(x,i+y); for(m=0;m<sizex;m++) { OLED_WR_Byte(BMP[j++],OLED_DATA); } } } // void OLED_ScrollDisplay(u8 x1,u8 y1,u8 x2,u8 y2,int time,u8 size) // { // /* 大致分为三个部分 // 1.左移渐显:字从右边出来,是一个渐显的过程 // 2.整体左移:已经显示出整体的字 // 3.左移渐隐:字从左边消失,是一个逐渐消失的过程 // */ // u8 xPoint = x1; //记录当前列坐标 // u8 i = size; //字号 // uint16_t size1=(size/8+((size%8)?1:0))*size; //计算当前字号对应的字节数 // while (1) // { // switch (xPoint) // { // case x1: //起始:左移渐显 // if (i<16) // { // for (size_t k = 0; k < i+1; k++) // { // OLED_Set_Pos(xPoint-i+k,6); //一页是8行 // OLED_WR_Byte(Hzk[5][k],OLED_DATA); // OLED_Set_Pos(xPoint-i+k,7); //一页是8行 // OLED_WR_Byte(Hzk[5][16+k],OLED_DATA); // } // i++; // vTaskDelay(200/ portTICK_PERIOD_MS); // }else // { // if (xPoint==0) // { // xPoint = x1; // }else // { // xPoint-=15; // } // } // break; // case x2: //结束:左移渐隐 // for (size_t j = 1; j < 16; j++) // { // for (size_t k = j; k <16; k++) // { // OLED_Set_Pos(start-j+k,6); //一页是8行 // OLED_WR_Byte(Hzk[5][k],OLED_DATA); // OLED_Set_Pos(start-j+k,7); //一页是8行 // OLED_WR_Byte(Hzk[5][16+k],OLED_DATA); // } // vTaskDelay(200/ portTICK_PERIOD_MS); // } // if (start==0) // { // start =108; // } // break; // default: //整体左移 // break; // } // } // } int ik =0; int start = 108; void OLED_Left_Display() { ///实现原理:通过一竖一竖的写,然后每移动一竖,就要重写之前的数据,以此达到移动的目的 int i=0; //当前 if (start==108) { while (i < 16) //16号字体,像素点:16*16 = 256;是32个字节,一个字节可以表示8个像素点:32*8=256 { for (size_t k = 0; k < i+1; k++) { //设置坐标 OLED_Set_Pos(start-i+k,6); //一页是8行 OLED_WR_Byte(Hzk[5][k],OLED_DATA); OLED_Set_Pos(start-i+k,7); //一页是8行 OLED_WR_Byte(Hzk[5][16+k],OLED_DATA); } i++; vTaskDelay(200/ portTICK_PERIOD_MS); } if (start==0) { start =108; }else { start-=15; } }else if (start==0) { for (size_t j = 1; j < 16; j++) { for (size_t k = j; k <16; k++) { OLED_Set_Pos(start-j+k,6); //一页是8行 OLED_WR_Byte(Hzk[5][k],OLED_DATA); OLED_Set_Pos(start-j+k,7); //一页是8行 OLED_WR_Byte(Hzk[5][16+k],OLED_DATA); } vTaskDelay(200/ portTICK_PERIOD_MS); } if (start==0) { start =108; } } else { start--; //设置坐标 OLED_Set_Pos(start,6); //一页是8行 OLED_ShowChinese(start,6,5,16); vTaskDelay(200/ portTICK_PERIOD_MS); } } void show_picture() { // OLED_DrawBMP(0,0,128,64,BMP2); // vTaskDelay(500); // OLED_DrawBMP(108,0,18,6,BMP3); OLED_Left_Display(); }//头文件 #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "driver/i2c.h" #include "ssd1306_font.h" //ssd1306 oled 字库 #define u8 uint8_t #define u16 uint16_t #define u32 uint32_t void OLED_Init(); void I2C_Init( void ); void OLED_On(void); void OLED_Clear(void); void OLED_Display_On(void); void OLED_DrawCircle(uint8_t x,uint8_t y,uint8_t r); void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t z,uint8_t sizey); void OLED_DrawBMP(uint8_t x,uint8_t y,uint8_t sizex, uint8_t sizey,uint8_t BMP[]); void show_picture(); void OLED_WR_Byte(uint8_t dat, uint8_t mode); void OLED_DrawLine(u8 x1,u8 y1,u8 x2,u8 y2,u8 mode);
//字体库 static char Hzk[][32]={ {0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",0*/ {0x40,0x40,0x40,0x5F,0x55,0x55,0x55,0x75,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00,0x00,0x40,0x20,0x0F,0x09,0x49,0x89,0x79,0x09,0x09,0x09,0x0F,0x20,0x40,0x00,0x00},/*"景",1*/ {0x00,0xFE,0x02,0x42,0x4A,0xCA,0x4A,0x4A,0xCA,0x4A,0x4A,0x42,0x02,0xFE,0x00,0x00,0x00,0xFF,0x40,0x50,0x4C,0x43,0x40,0x40,0x4F,0x50,0x50,0x5C,0x40,0xFF,0x00,0x00},/*"园",2*/ {0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00},/*"电",3*/ {0x80,0x82,0x82,0x82,0x82,0x82,0x82,0xE2,0xA2,0x92,0x8A,0x86,0x82,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"子",4*/ {0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00,0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00},/*"技",5*/ {0x00,0x10,0x10,0x10,0x10,0xD0,0x30,0xFF,0x30,0xD0,0x12,0x1C,0x10,0x10,0x00,0x00,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0xFF,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x00},/*"术",6*/ }; static unsigned char BMP1[] = { 0x00,0x03,0x05,0x09,0x11,0xFF,0x11,0x89,0x05,0xC3,0x00,0xE0,0x00,0xF0,0x00,0xF8, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x28,0xFF,0x11,0xAA,0x44,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x01,0x38,0x44,0x82,0x92, 0x92,0x74,0x01,0x83,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x44,0xFF,0x01,0x7D, 0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,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,0x01,0x00,0x00,0x00,0x00, 0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x3F,0x03,0x03, 0xF3,0x13,0x11,0x11,0x11,0x11,0x11,0x11,0x01,0xF1,0x11,0x61,0x81,0x01,0x01,0x01, 0x81,0x61,0x11,0xF1,0x01,0x01,0x01,0x01,0x41,0x41,0xF1,0x01,0x01,0x01,0x01,0x01, 0xC1,0x21,0x11,0x11,0x11,0x11,0x21,0xC1,0x01,0x01,0x01,0x01,0x41,0x41,0xF1,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x11,0x11,0x11,0x11,0x11,0xD3,0x33, 0x03,0x03,0x3F,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00, 0x7F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x7F,0x00,0x00,0x01,0x06,0x18,0x06, 0x01,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,0x40,0x00,0x00,0x00, 0x1F,0x20,0x40,0x40,0x40,0x40,0x20,0x1F,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40, 0x40,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x40,0x30,0x0C,0x03,0x00,0x00, 0x00,0x00,0xE0,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,0x07,0x07,0x06,0x06, 0x06,0x06,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x84,0x44,0x44,0x44, 0x84,0x04,0x04,0x04,0x84,0xC4,0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04, 0x04,0x04,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x04,0x04,0x04,0x84,0x44, 0x44,0x44,0x84,0x04,0x04,0x84,0x44,0x44,0x44,0x84,0x04,0x04,0x04,0x04,0x06,0x06, 0x06,0x06,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x10,0x18,0x14,0x12,0x11,0x00,0x00,0x0F,0x10,0x10,0x10, 0x0F,0x00,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,0x08,0x10,0x12,0x12,0x0D,0x00, 0x00,0x18,0x00,0x00,0x0D,0x12,0x12,0x12,0x0D,0x00,0x00,0x18,0x00,0x00,0x10,0x18, 0x14,0x12,0x11,0x00,0x00,0x10,0x18,0x14,0x12,0x11,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80, 0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x03,0x0C,0x30,0x0C,0x03,0x7F,0x00,0x00,0x38,0x54,0x54,0x58,0x00,0x00, 0x7C,0x04,0x04,0x78,0x00,0x00,0x3C,0x40,0x40,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,0xFF,0xAA,0xAA,0xAA, 0x28,0x08,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,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,0x03,0x0C,0x30,0x0C,0x03,0x7F, 0x00,0x00,0x26,0x49,0x49,0x49,0x32,0x00,0x00,0x7F,0x02,0x04,0x08,0x10,0x7F,0x00,/********************************/ }; static unsigned char BMP2[] ={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x1E,0x3F, 0x3F,0x21,0x3F,0x3F,0x3F,0x21,0x3F,0x3F,0x3F,0x21,0x3F,0x3F,0x3F,0x21,0x3F,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20, 0x10,0x18,0x18,0x18,0xF8,0xF8,0xF8,0xF8,0xE0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00, 0x80,0x78,0x78,0x18,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x18,0x18,0x18,0x18,0x18, 0x18,0x06,0x06,0x06,0x06,0x06,0x06,0x18,0x78,0x78,0x80,0x00,0x00,0x00,0x00,0x00, 0xC0,0x20,0x10,0x18,0x18,0x18,0x18,0x18,0xF8,0xF8,0xF8,0xE0,0xE0,0x80,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0xE0,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,0x18,0x18,0x18,0x60,0x60,0x80,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF8,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x80, 0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0x00,0x00,0x00, 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00, 0xFF,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE, 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x80,0x60,0x60,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x1F,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x7F,0x7F, 0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x01,0x01,0x00,0x00,0x00, 0x07,0x78,0x78,0x60,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x60,0x60,0x7F,0x60,0x60, 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x60,0x78,0x78,0x07,0x00,0x00,0x00,0x00,0x00, 0x07,0x1F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x1F,0x07,0x07, 0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x1E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; static unsigned char BMP3[] = { 0x1C,0x1C,0x3E,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x3E,0x3E,0x22,0x3E,0x3E,0x3E, 0x22,0x3E, };
#好好学习!