STM32 HAL 软件SPI任意GPIO控制st7735

通过软件SPI控制任意GPIo驱动st7735屏幕

cpp 复制代码
#ifndef FUNC_H
#include "stm32f1xx_hal.h"
#include "main.h"
#define FUNC_H
//画笔颜色
#define WHITE         	 0xFFFF
#define BLACK         	 0x0000	  
#define BLUE         	 0x001F  
#define BRED             0XF81F
#define GRED 			 0XFFE0
#define GBLUE			 0X07FF
#define RED           	 0xF800
#define MAGENTA       	 0xF81F
#define GREEN         	 0x07E0
#define CYAN          	 0x7FFF
#define YELLOW        	 0xFFE0
#define BROWN 			 0XBC40 //棕色
#define BRRED 			 0XFC07 //棕红色
#define GRAY  			 0X8430 //灰色

// func.h
typedef struct {
    uint16_t width;
    uint16_t height;
    uint8_t rotation; // 0: 正常, 1: 90°, 2: 180°, 3: 270°
} ST7735_Config;

extern ST7735_Config st7735_cfg;

/* USER CODE BEGIN Private defines */
#define LCD_RST1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3,GPIO_PIN_SET);
#define LCD_RST0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3,GPIO_PIN_RESET);
//   LCD_DC
#define LCD_DC1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4,GPIO_PIN_SET);//a0//GPIOB->BSRR=GPIO_BSRR_BS_12
#define LCD_DC0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4,GPIO_PIN_RESET);//GPIOB->BSRR=GPIO_BSRR_BR_12//

//  LCD_CS
#define LCD_CS1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_SET);// GPIOB->BSRR=GPIO_BSRR_BS_10//
#define LCD_CS0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET);// GPIOB->BSRR=GPIO_BSRR_BR_10//

//  LCD_CLK
#define LCD_CLK1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5,GPIO_PIN_SET);// GPIOB->BSRR=GPIO_BSRR_BS_10//
#define LCD_CLK0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5,GPIO_PIN_RESET);// GPIOB->BSRR=GPIO_BSRR_BR_10//

//  LCD_SDA
#define LCD_SDA1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7,GPIO_PIN_SET);// GPIOB->BSRR=GPIO_BSRR_BS_10//
#define LCD_SDA0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_7,GPIO_PIN_RESET);// GPIOB->BSRR=GPIO_BSRR_BR_10//


void lcd7735_senddata(uint8_t data);
void lcd7735_send16bData(uint16_t data) ;
void spi2_8b_init(void);
void spi2_16b_init(void);


void lcd7735_putstr_vertical(unsigned char x, unsigned char y, const unsigned char str[], unsigned int charColor, unsigned int bkgColor);

//初始化
void lcd7735_ini(void);
//发送数据
void lcd7735_sendData(unsigned char data);
//发送命令
void lcd7735_sendCmd(unsigned char cmd); 
// 点亮指定区域
void lcd7735_fillrect(unsigned char startX, unsigned char startY, unsigned char stopX, unsigned char stopY, unsigned int color);
//点亮像素点
void lcd7735_putpix(unsigned char x, unsigned char y, unsigned int Color);
// 画线
void lcd7735_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned int color);
// 绘制矩形(未填充)  
void lcd7735_rect(char x1,char y1,char x2,char y2, unsigned int color);
//输出单个字符
void lcd7735_putchar(unsigned char x, unsigned char y, unsigned char chr, unsigned int charColor, unsigned int bkgColor);
//输出字符串	 
void lcd7735_putstr(unsigned char x, unsigned char y, const unsigned char str[], unsigned int charColor, unsigned int bkgColor);
// 计算指定屏幕区域
void lcd7735_at(unsigned char startX, unsigned char startY, unsigned char stopX, unsigned char stopY) ;
//输出32*32中文	//
void showhanzi32(unsigned int x,unsigned int y,unsigned char index, unsigned int charColor,unsigned int bkgColor);

void showimage(uint16_t x,uint16_t y);
#endif
cpp 复制代码
/**
 *  шрифт любезно предоставил AlexPM с форума easyelectronics.ru
 *
 */
 
 const unsigned char hanzi32[]={	
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x1C,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00,0x10,0x20,0x34,0x00,
0x1F,0xF0,0x66,0x00,0x18,0x60,0x42,0x00,0x18,0x60,0xC1,0x00,0x18,0x61,
0x81,0x80,0x18,0x61,0x00,0xE0,0x18,0x62,0x00,0x70,0x18,0x64,0x01,0xBC,
0x18,0x6B,0xFF,0xD8,0x18,0x70,0x00,0x00,0x18,0x60,0x00,0x00,0x18,0x60,
0x00,0x00,0x18,0x62,0x00,0x00,0x18,0x63,0xFF,0xC0,0x1F,0xE3,0x00,0xC0,
0x18,0x63,0x00,0xC0,0x18,0x63,0x00,0xC0,0x18,0x03,0x00,0xC0,0x18,0x03,
0x00,0xC0,0x10,0x03,0x00,0xC0,0x00,0x03,0x00,0xC0,0x00,0x03,0xFF,0xC0,
0x00,0x03,0x00,0xC0,0x00,0x03,0x00,0xC0,0x00,0x02,0x00,0x80,0x00,0x00,
0x00,0x00,/*"哈",0*/

};
const unsigned char NewBFontLAT[] = {
/* Code: 0x20, ASCII Character: ' ' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x21, ASCII Character: '!' */
	0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0x22, ASCII Character: '"' */
	0x00, 0x38, 0x08, 0x00, 0x38, 0x08, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x23, ASCII Character: '#' */
	0x00, 0x40, 0xE0, 0x58, 0xE0, 0x58, 0x00, 0x00,
	0x0D, 0x03, 0x0D, 0x03, 0x01, 0x00,

	/* Code: 0x24, ASCII Character: '$' */
	0x00, 0x60, 0x90, 0x98, 0x90, 0x00, 0x00, 0x00,
	0x03, 0x02, 0x0E, 0x01, 0x00, 0x00,

	/* Code: 0x25, ASCII Character: '%' */
	0x00, 0x90, 0xA8, 0x90, 0x40, 0x40, 0x00, 0x00,
	0x00, 0x00, 0x02, 0x05, 0x02, 0x00,

	/* Code: 0x26, ASCII Character: '&' */
	0x00, 0x00, 0xC0, 0x20, 0x20, 0x00, 0x00, 0x00,
	0x03, 0x04, 0x05, 0x02, 0x05, 0x00,

	/* Code: 0x27, ASCII Character: ''' */
	0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x28, ASCII Character: '(' */
	0x00, 0x00, 0x00, 0xE0, 0x18, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x07, 0x18, 0x00, 0x00,

	/* Code: 0x29, ASCII Character: ')' */
	0x00, 0x00, 0x18, 0xE0, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x18, 0x07, 0x00, 0x00, 0x00,

	/* Code: 0x2A, ASCII Character: '*' */
	0x00, 0x10, 0xD0, 0x38, 0xD0, 0x10, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x2B, ASCII Character: '+' */
	0x80, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x00,
	0x00, 0x00, 0x07, 0x00, 0x00, 0x00,

	/* Code: 0x2C, ASCII Character: ',' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x18, 0x0E, 0x02, 0x00, 0x00,

	/* Code: 0x2D, ASCII Character: '-' */
	0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x2E, ASCII Character: '.' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x06, 0x06, 0x00, 0x00, 0x00,

	/* Code: 0x2F, ASCII Character: '/' */
	0x00, 0x00, 0x00, 0x80, 0x60, 0x18, 0x00, 0x00,
	0x08, 0x06, 0x01, 0x00, 0x00, 0x00,

	/* Code: 0x30, ASCII Character: '0' */
	0x00, 0xF0, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x31, ASCII Character: '1' */
	0x00, 0x00, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0x32, ASCII Character: '2' */
	0x00, 0x10, 0x08, 0x88, 0x48, 0x30, 0x00, 0x00,
	0x06, 0x05, 0x04, 0x04, 0x06, 0x00,

	/* Code: 0x33, ASCII Character: '3' */
	0x00, 0x10, 0x08, 0x48, 0x48, 0xB0, 0x00, 0x00,
	0x02, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x34, ASCII Character: '4' */
	0x00, 0x80, 0x40, 0x30, 0x08, 0xF8, 0x00, 0x00,
	0x01, 0x01, 0x01, 0x05, 0x07, 0x05,

	/* Code: 0x35, ASCII Character: '5' */
	0x00, 0x00, 0x78, 0x48, 0x48, 0x88, 0x00, 0x00,
	0x02, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x36, ASCII Character: '6' */
	0x00, 0xE0, 0x50, 0x48, 0x48, 0x88, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x37, ASCII Character: '7' */
	0x00, 0x18, 0x08, 0x08, 0xC8, 0x38, 0x00, 0x00,
	0x00, 0x00, 0x06, 0x01, 0x00, 0x00,

	/* Code: 0x38, ASCII Character: '8' */
	0x00, 0xB0, 0x48, 0x48, 0x48, 0xB0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x39, ASCII Character: '9' */
	0x00, 0x70, 0x88, 0x88, 0x88, 0xF0, 0x00, 0x00,
	0x04, 0x04, 0x04, 0x02, 0x01, 0x00,

	/* Code: 0x3A, ASCII Character: ':' */
	0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x06, 0x06, 0x00, 0x00, 0x00,

	/* Code: 0x3B, ASCII Character: ';' */
	0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00,
	0x00, 0x0C, 0x06, 0x02, 0x00, 0x00,

	/* Code: 0x3C, ASCII Character: '<' */
	0x80, 0x40, 0x40, 0x20, 0x10, 0x10, 0x00, 0x00,
	0x01, 0x01, 0x02, 0x04, 0x04, 0x00,

	/* Code: 0x3D, ASCII Character: '=' */
	0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00,
	0x01, 0x01, 0x01, 0x01, 0x01, 0x00,

	/* Code: 0x3E, ASCII Character: '>' */
	0x10, 0x10, 0x20, 0x40, 0x40, 0x80, 0x00, 0x04,
	0x04, 0x02, 0x01, 0x01, 0x00, 0x00,

	/* Code: 0x3F, ASCII Character: '?' */
	0x00, 0x00, 0x20, 0x10, 0x90, 0x60, 0x00, 0x00,
	0x00, 0x04, 0x05, 0x00, 0x00, 0x00,

	/* Code: 0x40, ASCII Character: '@' */
	0x00, 0xF8, 0x04, 0xC4, 0x24, 0xF8, 0x00, 0x00,
	0x07, 0x08, 0x08, 0x09, 0x05, 0x00,

	/* Code: 0x41, ASCII Character: 'A' */
	0x00, 0x00, 0xE8, 0x18, 0xE0, 0x00, 0x00, 0x04,
	0x07, 0x05, 0x01, 0x05, 0x07, 0x04,

	/* Code: 0x42, ASCII Character: 'B' */
	0x08, 0xF8, 0x48, 0x48, 0x48, 0xB0, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x43, ASCII Character: 'C' */
	0x00, 0xF0, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x02, 0x00,

	/* Code: 0x44, ASCII Character: 'D' */
	0x08, 0xF8, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x02, 0x01, 0x00,

	/* Code: 0x45, ASCII Character: 'E' */
	0x08, 0xF8, 0x48, 0xE8, 0x08, 0x18, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x06, 0x00,

	/* Code: 0x46, ASCII Character: 'F' */
	0x00, 0x08, 0xF8, 0x48, 0xE8, 0x08, 0x18, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0x47, ASCII Character: 'G' */
	0x00, 0xF0, 0x08, 0x08, 0x88, 0x98, 0x80, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x48, ASCII Character: 'H' */
	0x08, 0xF8, 0x48, 0x40, 0x48, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0x49, ASCII Character: 'I' */
	0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0x4A, ASCII Character: 'J' */
	0x00, 0x80, 0x08, 0x08, 0xF8, 0x08, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x03, 0x00, 0x00,

	/* Code: 0x4B, ASCII Character: 'K' */
	0x08, 0xF8, 0x88, 0xC0, 0x28, 0x18, 0x08, 0x04,
	0x07, 0x04, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0x4C, ASCII Character: 'L' */
	0x00, 0x08, 0xF8, 0x08, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x04, 0x07, 0x00,

	/* Code: 0x4D, ASCII Character: 'M' */
	0x08, 0xF8, 0x38, 0xC0, 0x38, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0x4E, ASCII Character: 'N' */
	0x08, 0xF8, 0x38, 0xC0, 0x08, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x01, 0x06, 0x07, 0x00,

	/* Code: 0x4F, ASCII Character: 'O' */
	0x00, 0xF0, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x50, ASCII Character: 'P' */
	0x00, 0x08, 0xF8, 0x88, 0x88, 0x70, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0x51, ASCII Character: 'Q' */
	0x00, 0xF0, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00,
	0x03, 0x04, 0x0C, 0x0C, 0x0B, 0x00,

	/* Code: 0x52, ASCII Character: 'R' */
	0x08, 0xF8, 0x88, 0x88, 0x88, 0x70, 0x00, 0x04,
	0x07, 0x04, 0x00, 0x01, 0x02, 0x04,

	/* Code: 0x53, ASCII Character: 'S' */
	0x00, 0x30, 0x48, 0x48, 0x50, 0x98, 0x00, 0x00,
	0x06, 0x02, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x54, ASCII Character: 'T' */
	0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00,
	0x00, 0x04, 0x07, 0x04, 0x00, 0x00,

	/* Code: 0x55, ASCII Character: 'U' */
	0x08, 0xF8, 0x08, 0x00, 0x08, 0xF8, 0x08, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x56, ASCII Character: 'V' */
	0x08, 0x38, 0xC8, 0x00, 0xC8, 0x38, 0x08, 0x00,
	0x00, 0x01, 0x06, 0x01, 0x00, 0x00,

	/* Code: 0x57, ASCII Character: 'W' */
	0x08, 0xF8, 0x08, 0xC0, 0x08, 0xF8, 0x08, 0x00,
	0x03, 0x04, 0x03, 0x04, 0x03, 0x00,

	/* Code: 0x58, ASCII Character: 'X' */
	0x08, 0x18, 0x20, 0xC0, 0x20, 0x18, 0x08, 0x04,
	0x06, 0x01, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0x59, ASCII Character: 'Y' */
	0x08, 0x18, 0x68, 0x80, 0x68, 0x18, 0x08, 0x00,
	0x00, 0x04, 0x07, 0x04, 0x00, 0x00,

	/* Code: 0x5A, ASCII Character: 'Z' */
	0x00, 0x18, 0x08, 0xC8, 0x28, 0x18, 0x00, 0x00,
	0x06, 0x05, 0x04, 0x04, 0x06, 0x00,

	/* Code: 0x5B, ASCII Character: '[' */
	0x00, 0x00, 0xF8, 0x08, 0x08, 0x00, 0x00, 0x00,
	0x00, 0x1F, 0x10, 0x10, 0x00, 0x00,

	/* Code: 0x5C, ASCII Character: '\' */
	0x00, 0x08, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x01, 0x0E, 0x00, 0x00,

	/* Code: 0x5D, ASCII Character: ']' */
	0x00, 0x00, 0x08, 0x08, 0xF8, 0x00, 0x00, 0x00,
	0x00, 0x10, 0x10, 0x1F, 0x00, 0x00,

	/* Code: 0x5E, ASCII Character: '^' */
	0x00, 0x40, 0x20, 0x18, 0x20, 0x40, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x5F, ASCII Character: '_' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
	0x20, 0x20, 0x20, 0x20, 0x20, 0x20,

	/* Code: 0x60, ASCII Character: '`' */
	0x00, 0x00, 0x00, 0x08, 0x10, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x61, ASCII Character: 'a' */
	0x00, 0x40, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x07, 0x04,

	/* Code: 0x62, ASCII Character: 'b' */
	0x08, 0xF8, 0x40, 0x20, 0x20, 0xC0, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x63, ASCII Character: 'c' */
	0x00, 0xC0, 0x20, 0x20, 0x20, 0x60, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x02, 0x00,

	/* Code: 0x64, ASCII Character: 'd' */
	0x00, 0xC0, 0x20, 0x20, 0x48, 0xF8, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x07, 0x04,

	/* Code: 0x65, ASCII Character: 'e' */
	0x00, 0xC0, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x04, 0x00,

	/* Code: 0x66, ASCII Character: 'f' */
	0x00, 0x20, 0xF0, 0x28, 0x28, 0x28, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x04, 0x04, 0x00,

	/* Code: 0x67, ASCII Character: 'g' */
	0x00, 0xC0, 0x20, 0x20, 0x40, 0xE0, 0x20, 0x00,
	0x03, 0x14, 0x14, 0x14, 0x0F, 0x00,

	/* Code: 0x68, ASCII Character: 'h' */
	0x08, 0xF8, 0x40, 0x20, 0x20, 0xC0, 0x00, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0x69, ASCII Character: 'i' */
	0x00, 0x20, 0x20, 0xE8, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0x6A, ASCII Character: 'j' */
	0x00, 0x20, 0x20, 0x28, 0xE0, 0x00, 0x00, 0x00,
	0x10, 0x10, 0x10, 0x0F, 0x00, 0x00,

	/* Code: 0x6B, ASCII Character: 'k' */
	0x08, 0xF8, 0x80, 0xA0, 0x60, 0x20, 0x00, 0x04,
	0x07, 0x00, 0x05, 0x06, 0x04, 0x00,

	/* Code: 0x6C, ASCII Character: 'l' */
	0x00, 0x00, 0x08, 0xF8, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0x6D, ASCII Character: 'm' */
	0x20, 0xE0, 0x20, 0xC0, 0x20, 0xC0, 0x00, 0x04,
	0x07, 0x04, 0x07, 0x04, 0x07, 0x04,

	/* Code: 0x6E, ASCII Character: 'n' */
	0x20, 0xE0, 0x40, 0x20, 0x20, 0xC0, 0x00, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0x6F, ASCII Character: 'o' */
	0x00, 0xC0, 0x20, 0x20, 0x20, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x70, ASCII Character: 'p' */
	0x20, 0xE0, 0x40, 0x20, 0x20, 0xC0, 0x00, 0x10,
	0x1F, 0x14, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x71, ASCII Character: 'q' */
	0x00, 0xC0, 0x20, 0x20, 0x40, 0xE0, 0x20, 0x00,
	0x03, 0x04, 0x04, 0x14, 0x1F, 0x10,

	/* Code: 0x72, ASCII Character: 'r' */
	0x00, 0x20, 0xE0, 0x40, 0x20, 0x20, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x04, 0x04, 0x00,

	/* Code: 0x73, ASCII Character: 's' */
	0x00, 0x40, 0xA0, 0xA0, 0xA0, 0x60, 0x00, 0x00,
	0x06, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0x74, ASCII Character: 't' */
	0x00, 0x20, 0xF0, 0x20, 0x20, 0x20, 0x00, 0x00,
	0x00, 0x03, 0x04, 0x04, 0x04, 0x02,

	/* Code: 0x75, ASCII Character: 'u' */
	0x20, 0xE0, 0x00, 0x00, 0x20, 0xE0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x02, 0x07, 0x04,

	/* Code: 0x76, ASCII Character: 'v' */
	0x20, 0xE0, 0x20, 0x00, 0x20, 0xE0, 0x20, 0x00,
	0x00, 0x03, 0x04, 0x03, 0x00, 0x00,

	/* Code: 0x77, ASCII Character: 'w' */
	0x20, 0xE0, 0x20, 0x80, 0x20, 0xE0, 0x20, 0x00,
	0x03, 0x04, 0x03, 0x04, 0x03, 0x00,

	/* Code: 0x78, ASCII Character: 'x' */
	0x20, 0x60, 0x80, 0x80, 0x60, 0x20, 0x00, 0x04,
	0x06, 0x01, 0x01, 0x06, 0x04, 0x00,

	/* Code: 0x79, ASCII Character: 'y' */
	0x20, 0x60, 0xA0, 0x00, 0x20, 0xE0, 0x20, 0x00,
	0x10, 0x11, 0x1E, 0x13, 0x00, 0x00,

	/* Code: 0x7A, ASCII Character: 'z' */
	0x00, 0x60, 0x20, 0xA0, 0x60, 0x20, 0x00, 0x00,
	0x06, 0x05, 0x04, 0x04, 0x06, 0x00,

	/* Code: 0x7B, ASCII Character: '{' */
	0x00, 0x00, 0x00, 0xF0, 0x08, 0x00, 0x00, 0x00,
	0x00, 0x01, 0x0E, 0x10, 0x00, 0x00,

	/* Code: 0x7C, ASCII Character: '|' */
	0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x0F, 0x00, 0x00, 0x00,

	/* Code: 0x7D, ASCII Character: '}' */
	0x00, 0x00, 0x08, 0xF0, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x10, 0x0E, 0x01, 0x00, 0x00,

	/* Code: 0x7E, ASCII Character: '~' */
	0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
	0x01, 0x00, 0x01, 0x01, 0x00, 0x00,

	/* Code: 0x7F, ASCII Character: '' */
	0xF8, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x07,
	0x04, 0x04, 0x04, 0x04, 0x07, 0x00,

	/* Code: 0x80, ASCII Character: 'Ђ' */
	0x18, 0x08, 0xF8, 0x88, 0x58, 0x40, 0x80, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x04, 0x03,

	/* Code: 0x81, ASCII Character: 'Ѓ' */
	0x00, 0x08, 0xF8, 0x0A, 0x09, 0x08, 0x38, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0x82, ASCII Character: '‚' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x18, 0x0E, 0x02, 0x00, 0x00, 0x00,

	/* Code: 0x83, ASCII Character: 'ѓ' */
	0x00, 0x20, 0xE0, 0x28, 0x24, 0xE0, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x01, 0x00,

	/* Code: 0x84, ASCII Character: '„' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x08, 0x04, 0x0A, 0x04, 0x02, 0x00,

	/* Code: 0x85, ASCII Character: '...' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x00, 0x04, 0x00, 0x04, 0x00,

	/* Code: 0x86, ASCII Character: '†' */
	0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00,
	0x00, 0x00, 0x07, 0x00, 0x00, 0x00,

	/* Code: 0x87, ASCII Character: '‡' */
	0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, 0x00, 0x00,
	0x01, 0x01, 0x07, 0x01, 0x01, 0x00,

	/* Code: 0x88, ASCII Character: '€' */
	0xA0, 0xF0, 0xA8, 0xA8, 0xA8, 0xA8, 0x18, 0x00,
	0x01, 0x02, 0x04, 0x04, 0x04, 0x02,

	/* Code: 0x89, ASCII Character: '‰' */
	0x10, 0x68, 0x50, 0x20, 0x20, 0x00, 0x00, 0x00,
	0x02, 0x05, 0x02, 0x02, 0x05, 0x02,

	/* Code: 0x8A, ASCII Character: 'Љ' */
	0x00, 0x08, 0xF8, 0x08, 0xF8, 0x48, 0x80, 0x06,
	0x04, 0x03, 0x04, 0x07, 0x04, 0x03,

	/* Code: 0x8B, ASCII Character: '‹' */
	0x00, 0x80, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00,
	0x01, 0x02, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0x8C, ASCII Character: 'Њ' */
	0xF8, 0x88, 0x80, 0xF8, 0x88, 0x80, 0x00, 0x07,
	0x04, 0x00, 0x07, 0x04, 0x04, 0x03,

	/* Code: 0x8D, ASCII Character: 'Ќ' */
	0x08, 0xF8, 0x48, 0xA2, 0x11, 0x08, 0x18, 0x04,
	0x07, 0x04, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0x8E, ASCII Character: 'Ћ' */
	0x18, 0x08, 0xF8, 0x88, 0x58, 0xC0, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x07, 0x04,

	/* Code: 0x8F, ASCII Character: 'Џ' */
	0x08, 0xF8, 0x08, 0x00, 0x08, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x1C, 0x04, 0x07, 0x04,

	/* Code: 0x90, ASCII Character: 'ђ' */
	0x10, 0xF8, 0x50, 0x50, 0x40, 0x80, 0x00, 0x04,
	0x07, 0x14, 0x10, 0x10, 0x0F, 0x00,

	/* Code: 0x91, ASCII Character: ''' */
	0x00, 0x00, 0x00, 0x08, 0x38, 0x60, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x92, ASCII Character: ''' */
	0x00, 0x60, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x93, ASCII Character: '"' */
	0x00, 0x08, 0x10, 0x28, 0x10, 0x20, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x94, ASCII Character: '"' */
	0x00, 0x20, 0x10, 0x28, 0x10, 0x08, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x95, ASCII Character: '•' */
	0x00, 0x00, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x96, ASCII Character: '--' */
	0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x97, ASCII Character: '---' */
	0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x98, ASCII Character: '' */
	0xF8, 0x08, 0x08, 0x08, 0x08, 0xF8, 0x00, 0x07,
	0x04, 0x04, 0x04, 0x04, 0x07, 0x00,

	/* Code: 0x99, ASCII Character: '™' */
	0x78, 0x48, 0x78, 0x58, 0x20, 0x58, 0x78, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0x9A, ASCII Character: 'љ' */
	0x20, 0xE0, 0x20, 0xE0, 0xA0, 0x80, 0x00, 0x04,
	0x07, 0x00, 0x07, 0x04, 0x07, 0x00,

	/* Code: 0x9B, ASCII Character: '›' */
	0x00, 0x00, 0x00, 0x20, 0x40, 0x80, 0x00, 0x00,
	0x00, 0x00, 0x04, 0x02, 0x01, 0x00,

	/* Code: 0x9C, ASCII Character: 'њ' */
	0x20, 0xE0, 0x80, 0xE0, 0xA0, 0x80, 0x00, 0x04,
	0x07, 0x00, 0x07, 0x04, 0x07, 0x00,

	/* Code: 0x9D, ASCII Character: 'ќ' */
	0x20, 0xE0, 0xA0, 0xC8, 0x24, 0x60, 0x00, 0x04,
	0x07, 0x04, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0x9E, ASCII Character: 'ћ' */
	0x10, 0xF8, 0x50, 0x50, 0x40, 0x80, 0x00, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0x9F, ASCII Character: 'џ' */
	0x20, 0xE0, 0x20, 0x00, 0x20, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x1C, 0x04, 0x07, 0x04,

	/* Code: 0xA0, ASCII Character: ' ' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0xA1, ASCII Character: 'Ў' */
	0x08, 0x38, 0x49, 0x82, 0x4A, 0x39, 0x08, 0x00,
	0x04, 0x06, 0x01, 0x00, 0x00, 0x00,

	/* Code: 0xA2, ASCII Character: 'ў' */
	0x20, 0x60, 0xA4, 0x08, 0x28, 0xE4, 0x20, 0x00,
	0x18, 0x11, 0x0E, 0x03, 0x00, 0x00,

	/* Code: 0xA3, ASCII Character: 'Ј' */
	0x00, 0x80, 0x08, 0x08, 0xF8, 0x08, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x03, 0x00, 0x00,

	/* Code: 0xA4, ASCII Character: '¤' */
	0x00, 0x10, 0xE0, 0x20, 0x20, 0xE0, 0x10, 0x00,
	0x02, 0x01, 0x01, 0x01, 0x01, 0x02,

	/* Code: 0xA5, ASCII Character: 'Ґ' */
	0x00, 0x08, 0xF8, 0x08, 0x08, 0x0E, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0xA6, ASCII Character: '¦' */
	0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x1E, 0x00, 0x00, 0x00,

	/* Code: 0xA7, ASCII Character: '§' */
	0x00, 0x60, 0xB8, 0x28, 0x48, 0x88, 0x18, 0x00,
	0x0C, 0x08, 0x09, 0x0A, 0x0E, 0x03,

	/* Code: 0xA8, ASCII Character: 'Ё' */
	0x08, 0xF8, 0x4A, 0xE8, 0x0A, 0x18, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x06, 0x00,

	/* Code: 0xA9, ASCII Character: '©' */
	0xC0, 0x20, 0xD0, 0x50, 0x50, 0x20, 0xC0, 0x01,
	0x02, 0x05, 0x05, 0x05, 0x02, 0x01,

	/* Code: 0xAA, ASCII Character: 'Є' */
	0x00, 0xF0, 0x48, 0x48, 0x48, 0x18, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x02, 0x00,

	/* Code: 0xAB, ASCII Character: '<<' */
	0x00, 0x00, 0x80, 0x40, 0x00, 0x80, 0x40, 0x00,
	0x01, 0x02, 0x04, 0x01, 0x02, 0x04,

	/* Code: 0xAC, ASCII Character: '¬' */
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
	0x01, 0x01, 0x01, 0x01, 0x01, 0x07,

	/* Code: 0xAD, ASCII Character: '­' */
	0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0xAE, ASCII Character: '®' */
	0xC0, 0x20, 0xF0, 0xB0, 0x70, 0x20, 0xC0, 0x01,
	0x03, 0x05, 0x05, 0x05, 0x02, 0x01,

	/* Code: 0xAF, ASCII Character: 'Ї' */
	0x00, 0x08, 0x0A, 0xF8, 0x0A, 0x08, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0xB0, ASCII Character: '°' */
	0x00, 0x00, 0x1C, 0x14, 0x1C, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0xB1, ASCII Character: '±' */
	0x80, 0x80, 0x80, 0xF0, 0x80, 0x80, 0x80, 0x04,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x04,

	/* Code: 0xB2, ASCII Character: 'І' */
	0x00, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0xB3, ASCII Character: 'і' */
	0x00, 0x20, 0x20, 0xE8, 0x00, 0x00, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0xB4, ASCII Character: 'ґ' */
	0x00, 0x20, 0xE0, 0x20, 0x20, 0x38, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0xB5, ASCII Character: 'µ' */
	0x20, 0xE0, 0x00, 0x00, 0x20, 0xE0, 0x00, 0x00,
	0x1F, 0x04, 0x04, 0x02, 0x07, 0x04,

	/* Code: 0xB6, ASCII Character: '¶' */
	0x70, 0x88, 0x88, 0xF8, 0x08, 0xF8, 0x08, 0x00,
	0x08, 0x08, 0x0F, 0x00, 0x0F, 0x08,

	/* Code: 0xB7, ASCII Character: '·' */
	0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

	/* Code: 0xB8, ASCII Character: 'ё' */
	0x00, 0xC0, 0xA8, 0xA0, 0xA8, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x04, 0x00,

	/* Code: 0xB9, ASCII Character: '№' */
	0x08, 0xF8, 0x70, 0x88, 0xF8, 0x08, 0x70, 0x04,
	0x07, 0x04, 0x03, 0x07, 0x00, 0x01,

	/* Code: 0xBA, ASCII Character: 'є' */
	0x00, 0xC0, 0xA0, 0xA0, 0x20, 0x60, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x02, 0x00,

	/* Code: 0xBB, ASCII Character: '>>' */
	0x40, 0x80, 0x00, 0x40, 0x80, 0x00, 0x00, 0x04,
	0x02, 0x01, 0x04, 0x02, 0x01, 0x00,

	/* Code: 0xBC, ASCII Character: 'ј' */
	0x00, 0x20, 0x20, 0x28, 0xE0, 0x00, 0x00, 0x00,
	0x10, 0x10, 0x10, 0x0F, 0x00, 0x00,

	/* Code: 0xBD, ASCII Character: 'Ѕ' */
	0x00, 0x30, 0x48, 0x48, 0x50, 0x98, 0x00, 0x00,
	0x06, 0x02, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xBE, ASCII Character: 'ѕ' */
	0x00, 0x40, 0xA0, 0xA0, 0xA0, 0x60, 0x00, 0x00,
	0x06, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xBF, ASCII Character: 'ї' */
	0x00, 0x20, 0x28, 0xE0, 0x08, 0x00, 0x00, 0x00,
	0x04, 0x04, 0x07, 0x04, 0x04, 0x00,

	/* Code: 0xC0, ASCII Character: 'А' */
	0x00, 0x00, 0xE8, 0x18, 0xE0, 0x00, 0x00, 0x04,
	0x07, 0x05, 0x01, 0x05, 0x07, 0x04,

	/* Code: 0xC1, ASCII Character: 'Б' */
	0x08, 0xF8, 0x48, 0x48, 0x48, 0x98, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xC2, ASCII Character: 'В' */
	0x08, 0xF8, 0x48, 0x48, 0x48, 0xB0, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xC3, ASCII Character: 'Г' */
	0x00, 0x08, 0xF8, 0x08, 0x08, 0x08, 0x38, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0xC4, ASCII Character: 'Д' */
	0x08, 0xF8, 0x08, 0x08, 0xF8, 0x08, 0x00, 0x1C,
	0x07, 0x04, 0x04, 0x07, 0x1C, 0x00,

	/* Code: 0xC5, ASCII Character: 'Е' */
	0x08, 0xF8, 0x48, 0xE8, 0x08, 0x18, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x06, 0x00,

	/* Code: 0xC6, ASCII Character: 'Ж' */
	0x08, 0x18, 0xA0, 0xF8, 0xA0, 0x18, 0x08, 0x04,
	0x07, 0x00, 0x07, 0x00, 0x07, 0x04,

	/* Code: 0xC7, ASCII Character: 'З' */
	0x00, 0x38, 0x10, 0x48, 0x48, 0xB0, 0x00, 0x00,
	0x04, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xC8, ASCII Character: 'И' */
	0x08, 0xF8, 0x08, 0xC0, 0x30, 0xF8, 0x08, 0x04,
	0x07, 0x03, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xC9, ASCII Character: 'Й' */
	0x08, 0xF8, 0x09, 0xC2, 0x32, 0xF9, 0x08, 0x04,
	0x07, 0x03, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xCA, ASCII Character: 'К' */
	0x08, 0xF8, 0x48, 0xA0, 0x10, 0x08, 0x18, 0x04,
	0x07, 0x04, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0xCB, ASCII Character: 'Л' */
	0x00, 0x08, 0xF8, 0x08, 0x08, 0xF8, 0x08, 0x04,
	0x04, 0x03, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xCC, ASCII Character: 'М' */
	0x08, 0xF8, 0x38, 0xC0, 0x38, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xCD, ASCII Character: 'Н' */
	0x08, 0xF8, 0x48, 0x40, 0x48, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xCE, ASCII Character: 'О' */
	0x00, 0xF0, 0x08, 0x08, 0x08, 0xF0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xCF, ASCII Character: 'П' */
	0x08, 0xF8, 0x08, 0x08, 0x08, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xD0, ASCII Character: 'Р' */
	0x00, 0x08, 0xF8, 0x88, 0x88, 0x70, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x00, 0x00,

	/* Code: 0xD1, ASCII Character: 'С' */
	0x00, 0xF0, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x02, 0x00,

	/* Code: 0xD2, ASCII Character: 'Т' */
	0x18, 0x08, 0x08, 0xF8, 0x08, 0x08, 0x18, 0x00,
	0x00, 0x04, 0x07, 0x04, 0x00, 0x00,

	/* Code: 0xD3, ASCII Character: 'У' */
	0x08, 0x38, 0x48, 0x80, 0x48, 0x38, 0x08, 0x00,
	0x04, 0x06, 0x01, 0x00, 0x00, 0x00,

	/* Code: 0xD4, ASCII Character: 'Ф' */
	0xC0, 0x20, 0x28, 0xF8, 0x28, 0x20, 0xC0, 0x00,
	0x01, 0x05, 0x07, 0x05, 0x01, 0x00,

	/* Code: 0xD5, ASCII Character: 'Х' */
	0x08, 0x18, 0x20, 0xC0, 0x20, 0x18, 0x08, 0x04,
	0x06, 0x01, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0xD6, ASCII Character: 'Ц' */
	0x08, 0xF8, 0x08, 0x00, 0x08, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x07, 0x1C,

	/* Code: 0xD7, ASCII Character: 'Ч' */
	0x08, 0xF8, 0x08, 0x00, 0x88, 0xF8, 0x08, 0x00,
	0x00, 0x01, 0x01, 0x04, 0x07, 0x04,

	/* Code: 0xD8, ASCII Character: 'Ш' */
	0x08, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x07, 0x04, 0x07, 0x04,

	/* Code: 0xD9, ASCII Character: 'Щ' */
	0x08, 0xF8, 0x00, 0xF8, 0x00, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x07, 0x04, 0x07, 0x1C,

	/* Code: 0xDA, ASCII Character: 'Ъ' */
	0x78, 0x08, 0xF8, 0x48, 0x40, 0x40, 0x80, 0x00,
	0x04, 0x07, 0x04, 0x04, 0x04, 0x03,

	/* Code: 0xDB, ASCII Character: 'Ы' */
	0x08, 0xF8, 0x48, 0x80, 0x08, 0xF8, 0x08, 0x04,
	0x07, 0x04, 0x03, 0x04, 0x07, 0x04,

	/* Code: 0xDC, ASCII Character: 'Ь' */
	0x08, 0xF8, 0x48, 0x40, 0x40, 0x80, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xDD, ASCII Character: 'Э' */
	0x00, 0x18, 0x48, 0x48, 0x48, 0xF0, 0x00, 0x00,
	0x02, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xDE, ASCII Character: 'Ю' */
	0x08, 0xF8, 0x48, 0xF0, 0x08, 0x08, 0xF0, 0x04,
	0x07, 0x04, 0x03, 0x04, 0x04, 0x03,

	/* Code: 0xDF, ASCII Character: 'Я' */
	0x00, 0x70, 0x88, 0x88, 0x88, 0xF8, 0x08, 0x04,
	0x03, 0x00, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xE0, ASCII Character: 'а' */
	0x00, 0x40, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x07, 0x04,

	/* Code: 0xE1, ASCII Character: 'б' */
	0x00, 0xF0, 0x48, 0x28, 0x2C, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xE2, ASCII Character: 'в' */
	0x00, 0x20, 0xE0, 0xA0, 0xA0, 0x40, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x04, 0x07, 0x00,

	/* Code: 0xE3, ASCII Character: 'г' */
	0x00, 0x20, 0xE0, 0x20, 0x20, 0xE0, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x00, 0x01, 0x00,

	/* Code: 0xE4, ASCII Character: 'д' */
	0x00, 0x20, 0xE0, 0x20, 0x20, 0xE0, 0x20, 0x0C,
	0x04, 0x07, 0x04, 0x04, 0x07, 0x0C,

	/* Code: 0xE5, ASCII Character: 'е' */
	0x00, 0xC0, 0xA0, 0xA0, 0xA0, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x04, 0x00,

	/* Code: 0xE6, ASCII Character: 'ж' */
	0x60, 0x20, 0x40, 0xE0, 0x40, 0x20, 0x60, 0x04,
	0x06, 0x01, 0x07, 0x01, 0x06, 0x04,

	/* Code: 0xE7, ASCII Character: 'з' */
	0x00, 0x20, 0xA0, 0xA0, 0xA0, 0x40, 0x00, 0x00,
	0x04, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xE8, ASCII Character: 'и' */
	0x20, 0xE0, 0x20, 0x80, 0x40, 0xE0, 0x20, 0x04,
	0x07, 0x02, 0x01, 0x04, 0x07, 0x04,

	/* Code: 0xE9, ASCII Character: 'й' */
	0x20, 0xE0, 0x24, 0x88, 0x48, 0xE4, 0x20, 0x04,
	0x07, 0x02, 0x01, 0x04, 0x07, 0x04,

	/* Code: 0xEA, ASCII Character: 'к' */
	0x20, 0xE0, 0xA0, 0xC0, 0x20, 0x60, 0x00, 0x04,
	0x07, 0x04, 0x00, 0x01, 0x06, 0x04,

	/* Code: 0xEB, ASCII Character: 'л' */
	0x00, 0x20, 0xE0, 0x20, 0x20, 0xE0, 0x20, 0x06,
	0x04, 0x03, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xEC, ASCII Character: 'м' */
	0x20, 0xE0, 0x60, 0x80, 0x60, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x01, 0x04, 0x07, 0x04,

	/* Code: 0xED, ASCII Character: 'н' */
	0x20, 0xE0, 0xA0, 0x80, 0xA0, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xEE, ASCII Character: 'о' */
	0x00, 0xC0, 0x20, 0x20, 0x20, 0xC0, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xEF, ASCII Character: 'п' */
	0x20, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x00, 0x04, 0x07, 0x04,

	/* Code: 0xF0, ASCII Character: 'р' */
	0x20, 0xE0, 0x40, 0x20, 0x20, 0xC0, 0x00, 0x10,
	0x1F, 0x14, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xF1, ASCII Character: 'с' */
	0x00, 0xC0, 0x20, 0x20, 0x20, 0x60, 0x00, 0x00,
	0x03, 0x04, 0x04, 0x04, 0x02, 0x00,

	/* Code: 0xF2, ASCII Character: 'т' */
	0x00, 0xE0, 0x20, 0xE0, 0x20, 0xE0, 0x00, 0x00,
	0x00, 0x04, 0x07, 0x04, 0x00, 0x00,

	/* Code: 0xF3, ASCII Character: 'у' */
	0x20, 0x60, 0xA0, 0x00, 0x20, 0xE0, 0x20, 0x00,
	0x18, 0x11, 0x0E, 0x03, 0x00, 0x00,

	/* Code: 0xF4, ASCII Character: 'ф' */
	0xC0, 0x20, 0x28, 0xF8, 0x20, 0x20, 0xC0, 0x03,
	0x04, 0x14, 0x1F, 0x14, 0x04, 0x03,

	/* Code: 0xF5, ASCII Character: 'х' */
	0x20, 0x60, 0x80, 0x80, 0x60, 0x20, 0x00, 0x04,
	0x06, 0x01, 0x01, 0x06, 0x04, 0x00,

	/* Code: 0xF6, ASCII Character: 'ц' */
	0x20, 0xE0, 0x20, 0x00, 0x20, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x07, 0x0C,

	/* Code: 0xF7, ASCII Character: 'ч' */
	0x20, 0xE0, 0x20, 0x00, 0xA0, 0xE0, 0x20, 0x00,
	0x01, 0x01, 0x01, 0x04, 0x07, 0x04,

	/* Code: 0xF8, ASCII Character: 'ш' */
	0x20, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x07, 0x04, 0x07, 0x04,

	/* Code: 0xF9, ASCII Character: 'щ' */
	0x20, 0xE0, 0x00, 0xE0, 0x00, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x07, 0x04, 0x07, 0x0C,

	/* Code: 0xFA, ASCII Character: 'ъ' */
	0xE0, 0x20, 0xE0, 0xA0, 0x80, 0x80, 0x00, 0x00,
	0x04, 0x07, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xFB, ASCII Character: 'ы' */
	0x20, 0xE0, 0xA0, 0x80, 0x20, 0xE0, 0x20, 0x04,
	0x07, 0x04, 0x07, 0x04, 0x07, 0x04,

	/* Code: 0xFC, ASCII Character: 'ь' */
	0x20, 0xE0, 0xA0, 0x80, 0x80, 0x00, 0x00, 0x04,
	0x07, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xFD, ASCII Character: 'э' */
	0x00, 0x60, 0x20, 0xA0, 0xA0, 0xC0, 0x00, 0x00,
	0x02, 0x04, 0x04, 0x04, 0x03, 0x00,

	/* Code: 0xFE, ASCII Character: 'ю' */
	0x20, 0xE0, 0xA0, 0xC0, 0x20, 0x20, 0xC0, 0x04,
	0x07, 0x04, 0x03, 0x04, 0x04, 0x03,

	/* Code: 0xFF, ASCII Character: 'я' */
	0x00, 0xC0, 0x20, 0x20, 0xE0, 0x20, 0x00, 0x04,
	0x06, 0x01, 0x05, 0x07, 0x04, 0x00

};
//QQ图像
const unsigned char qqimage[3200]={ /* 0X00,0X10,0X28,0X00,0X28,0X00,0X01,0X1B,*/
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0X7D,0XEF,
0XBA,0XD6,0XB6,0XB5,0XF3,0X9C,0XB2,0X94,0XB3,0X9C,0XB2,0X94,0X34,0XA5,0XF7,0XBD,
0XFB,0XDE,0X7D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0XFB,0XDE,0XF3,0X9C,0XCB,0X5A,
0XC7,0X39,0X04,0X21,0X82,0X10,0X42,0X10,0X42,0X10,0X41,0X08,0X83,0X18,0X45,0X29,
0XC7,0X39,0X0C,0X63,0X75,0XAD,0X3C,0XE7,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3C,0XE7,0XB2,0X94,0X08,0X42,0XC3,0X18,0X82,0X10,
0X04,0X21,0X45,0X29,0X86,0X31,0X86,0X31,0X86,0X31,0X86,0X31,0X45,0X29,0X04,0X21,
0X82,0X10,0X41,0X08,0XC3,0X18,0X08,0X42,0XF3,0X9C,0X3C,0XE7,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFB,0XDE,0X0C,0X63,0XC3,0X18,0XC3,0X18,0X45,0X29,0XC7,0X39,
0X08,0X42,0X08,0X42,0X08,0X42,0X08,0X42,0X08,0X42,0X08,0X42,0XC7,0X39,0XC7,0X39,
0X86,0X31,0X86,0X31,0X04,0X21,0X41,0X08,0X82,0X10,0XCB,0X5A,0XBA,0XD6,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFB,0XDE,0XCB,0X5A,0X82,0X10,0X45,0X29,0XC7,0X39,0X08,0X42,0X08,0X42,
0X09,0X4A,0X49,0X4A,0X49,0X4A,0X49,0X4A,0X49,0X4A,0X49,0X4A,0X08,0X42,0XC7,0X39,
0XC7,0X39,0XC7,0X39,0X86,0X31,0X45,0X29,0X83,0X18,0X00,0X00,0XC8,0X41,0X38,0XC6,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0X7D,0XEF,0X8E,0X73,0X82,0X10,0X45,0X29,0XC7,0X39,0X08,0X42,0X09,0X4A,0X8A,0X52,
0X30,0X84,0XCF,0X7B,0X8A,0X52,0X49,0X4A,0X4A,0X52,0X49,0X4A,0XCB,0X5A,0XCF,0X7B,
0X0C,0X63,0X08,0X42,0XC7,0X39,0X86,0X31,0X45,0X29,0XC3,0X18,0X00,0X00,0X49,0X4A,
0XBA,0XD6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XF3,0X9C,0XC3,0X18,0X04,0X21,0XC7,0X39,0X08,0X42,0X49,0X4A,0X49,0X4A,0X72,0X94,
0X7D,0XEF,0X7D,0XEF,0XB2,0X94,0X4A,0X52,0X49,0X4A,0X8A,0X52,0X75,0XAD,0XBE,0XF7,
0XBA,0XD6,0X4D,0X6B,0XC7,0X39,0XC7,0X39,0X86,0X31,0X45,0X29,0XC3,0X18,0X41,0X08,
0XCF,0X7B,0X7C,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBA,0XD6,
0X08,0X42,0X82,0X10,0XC7,0X39,0X08,0X42,0X49,0X4A,0X49,0X4A,0X8E,0X73,0XFB,0XDE,
0XFF,0XFF,0XBE,0XF7,0XBA,0XD6,0X8E,0X73,0X08,0X42,0X30,0X84,0X3C,0XE7,0X7D,0XEF,
0XFF,0XFF,0XB6,0XB5,0X49,0X4A,0XC7,0X39,0X86,0X31,0X45,0X29,0X04,0X21,0X41,0X08,
0X45,0X29,0XB6,0XB5,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0X71,0X8C,
0X41,0X08,0X45,0X29,0X08,0X42,0X49,0X4A,0X49,0X4A,0X4A,0X52,0XB2,0X94,0XBE,0XF7,
0XBE,0XF7,0XB2,0X94,0XCF,0X7B,0XCF,0X7B,0X49,0X4A,0XB6,0XB5,0XF3,0X9C,0X0C,0X63,
0X38,0XC6,0XBA,0XD6,0X0C,0X63,0X87,0X39,0XC7,0X39,0X86,0X31,0X45,0X29,0XC3,0X18,
0X41,0X08,0X30,0X84,0X7D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3C,0XE7,0XCB,0X5A,
0X41,0X08,0XC7,0X39,0X08,0X42,0X49,0X4A,0X4A,0X52,0X8A,0X52,0XF3,0X9C,0XFF,0XFF,
0X7D,0XEF,0XC7,0X39,0XC3,0X18,0X0C,0X63,0XCB,0X5A,0XB6,0XB5,0XB2,0X94,0XCB,0X5A,
0X75,0XAD,0XFA,0XD6,0X4D,0X6B,0X87,0X39,0XC7,0X39,0X86,0X31,0X45,0X29,0X04,0X21,
0X41,0X08,0X8A,0X52,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X38,0XC6,0X86,0X31,
0X04,0X21,0XC8,0X41,0X49,0X4A,0X49,0X4A,0X4A,0X52,0X49,0X4A,0XB1,0X8C,0XBE,0XF7,
0XBE,0XF7,0XB2,0X94,0XCF,0X7B,0XCF,0X7B,0X49,0X4A,0X74,0XA5,0X7D,0XEF,0X7C,0XE7,
0XBE,0XF7,0X79,0XCE,0X0C,0X63,0XC7,0X39,0XC7,0X39,0X86,0X31,0X45,0X29,0X04,0X21,
0X82,0X10,0X45,0X29,0X75,0XAD,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X34,0XA5,0X82,0X10,
0X86,0X31,0X08,0X42,0X49,0X4A,0X49,0X4A,0X8A,0X52,0X49,0X4A,0X4D,0X6B,0XBA,0XD6,
0XFF,0XFF,0XFF,0XFF,0X79,0XCE,0X0D,0X63,0XC7,0X39,0XCF,0X7B,0X7D,0XEF,0XFF,0XFF,
0XFF,0XFF,0X75,0XAD,0X08,0X42,0X86,0X31,0XC7,0X39,0X86,0X31,0X45,0X29,0X45,0X29,
0XC3,0X18,0XC3,0X18,0XB2,0X94,0X7D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0XB2,0X8C,0X41,0X08,
0XC7,0X39,0X08,0X42,0X49,0X4A,0X49,0X4A,0X8A,0X52,0X8A,0X52,0X4A,0X4A,0XD0,0X7B,
0X7A,0XC6,0X7B,0XBE,0X90,0X6B,0XC9,0X39,0X88,0X31,0XC9,0X39,0XB3,0X84,0XBB,0XC6,
0XF8,0XB5,0XCC,0X5A,0X86,0X31,0XC7,0X39,0XC7,0X39,0X86,0X31,0X45,0X29,0X45,0X29,
0XC4,0X20,0X41,0X08,0X30,0X84,0X3C,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3C,0XE7,0X8A,0X4A,0XC3,0X10,
0XC7,0X39,0X08,0X42,0X49,0X4A,0X49,0X4A,0X4A,0X4A,0X4A,0X42,0X09,0X3A,0X08,0X4A,
0X09,0X6B,0X49,0X7B,0XC6,0X7A,0X05,0X83,0X46,0X83,0XC5,0X7A,0XC6,0X72,0X09,0X7B,
0X48,0X5A,0X87,0X31,0X88,0X21,0X88,0X29,0X86,0X31,0X86,0X31,0X45,0X29,0X45,0X29,
0X04,0X21,0X41,0X08,0X4A,0X4A,0XBA,0XD6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XC5,0X82,0X50,0X05,0X41,
0XC7,0X29,0X08,0X42,0X49,0X4A,0X4A,0X42,0X49,0X4A,0X09,0X7B,0X88,0X9B,0XC6,0XB3,
0X21,0XD4,0XA0,0XDC,0XE1,0XE4,0X61,0XED,0X61,0XED,0X21,0XED,0XA0,0XE4,0X20,0XDC,
0X80,0XCB,0X43,0XAB,0XC4,0X82,0X06,0X5A,0X47,0X21,0X46,0X29,0X45,0X29,0X04,0X29,
0X04,0X19,0X82,0X10,0X82,0X18,0XF3,0X9C,0X7D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7D,0XEF,0X4D,0X93,0X00,0XA0,0X82,0XB8,
0XC7,0X31,0X09,0X32,0X49,0X4A,0X86,0X7A,0X43,0XC3,0X6B,0XED,0XF4,0XF6,0XEB,0XFD,
0X20,0XFD,0X20,0XFD,0X60,0XFD,0XA0,0XFD,0XA0,0XFD,0X60,0XFD,0X60,0XFD,0X20,0XFD,
0XE0,0XFC,0XA0,0XFC,0X60,0XF4,0XC1,0XDB,0X83,0X9A,0XC5,0X49,0X45,0X29,0X04,0X19,
0XC4,0X20,0X82,0X38,0X00,0X50,0XCB,0X6A,0XBA,0XD6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XEE,0X04,0XA1,0X00,0XC0,0X00,0XF0,
0XC3,0XA0,0XC8,0X41,0X49,0X42,0X05,0X9B,0X20,0XFC,0XA4,0XFC,0X69,0XFD,0XE8,0XFD,
0X63,0XFD,0X20,0XFD,0X60,0XFD,0X60,0XFD,0X60,0XFD,0X20,0XFD,0X20,0XFD,0XE0,0XFC,
0XE0,0XFC,0XA0,0XFC,0X60,0XFC,0X20,0XFC,0X41,0XD3,0XC5,0X49,0X45,0X19,0XC4,0X38,
0X82,0X68,0X41,0X88,0X00,0X70,0X49,0X5A,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XF6,0X82,0XC0,0X00,0XD0,0X86,0XC1,
0X46,0XF1,0X41,0XC8,0X45,0X79,0X89,0X52,0X88,0X62,0X86,0X6A,0XC6,0X7A,0XC4,0XBB,
0XE1,0XFC,0X60,0XFD,0X60,0XFD,0XA0,0XFD,0XA0,0XFD,0X60,0XFD,0X60,0XFD,0XE0,0XFC,
0X60,0XE4,0X03,0X93,0X84,0X72,0X44,0X6A,0XC5,0X41,0X45,0X29,0XC3,0X58,0X41,0XA8,
0X40,0X98,0X00,0XB0,0X00,0X60,0X0C,0X6B,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7D,0XEF,0XCE,0X83,0X82,0X88,0X00,0XF8,0XC4,0XD8,
0X0C,0XF3,0X8A,0XFA,0X82,0XE8,0X82,0XB0,0X45,0X69,0XC7,0X51,0X08,0X42,0X08,0X3A,
0X86,0X5A,0X83,0X9B,0XA2,0XBC,0X22,0XCD,0X21,0XCD,0XA1,0XC4,0X22,0XB4,0XC4,0X7A,
0X06,0X3A,0X86,0X29,0X45,0X29,0X05,0X31,0XC4,0X50,0X41,0X90,0X00,0XC0,0X00,0XA8,
0X00,0XA0,0X00,0XA8,0X00,0X30,0X4A,0X4A,0XBA,0XD6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0X7D,0XEF,0X8E,0X73,0XC3,0X18,0X05,0X39,0X82,0XA8,0X00,0XF8,
0XC3,0XF8,0X4D,0XFB,0X4D,0XFB,0XC7,0XF9,0XC3,0XF0,0X82,0XD8,0XC3,0XB0,0X04,0X81,
0X45,0X61,0X46,0X51,0X86,0X49,0X86,0X49,0X46,0X41,0X45,0X41,0X45,0X41,0X45,0X41,
0X05,0X49,0X04,0X61,0X82,0X90,0X41,0XB0,0X00,0XD0,0X00,0XC8,0X00,0XA8,0X00,0XA8,
0X00,0XB8,0X41,0X58,0X82,0X10,0X82,0X10,0XB2,0X94,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XBE,0XF7,0XCF,0X7B,0X82,0X10,0X04,0X21,0X86,0X29,0X86,0X41,0X04,0X99,
0X40,0XE8,0X41,0XF8,0X86,0XF9,0XCB,0XFA,0X49,0XFA,0X82,0XF8,0X00,0XF8,0X00,0XF0,
0X00,0XE8,0X41,0XD8,0X41,0XD0,0X41,0XC0,0X41,0XC0,0X41,0XC0,0X41,0XC0,0X41,0XC8,
0X00,0XD0,0X00,0XE0,0X00,0XE0,0X00,0XD8,0X00,0XD0,0X00,0XB8,0X00,0XA8,0X41,0X88,
0X82,0X48,0X82,0X10,0X82,0X10,0X00,0X00,0X45,0X29,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,
0XBE,0XF7,0XF3,0X9C,0X82,0X10,0XC3,0X18,0X45,0X29,0X86,0X31,0XC7,0X31,0X30,0X7C,
0XF3,0XDC,0X86,0XE1,0X00,0XF0,0X00,0XF8,0X41,0XF8,0X41,0XF8,0X00,0XF8,0X00,0XF8,
0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,
0X00,0XE8,0X00,0XE0,0X00,0XE0,0X00,0XD8,0X00,0XC8,0X41,0XA0,0X8A,0X9A,0X0C,0X63,
0X04,0X11,0X82,0X10,0X82,0X10,0X41,0X08,0X00,0X00,0X4D,0X6B,0X7D,0XEF,0XFF,0XFF,
0XFB,0XDE,0X08,0X42,0X42,0X10,0X45,0X29,0X86,0X31,0X86,0X31,0X49,0X4A,0X38,0XBE,
0XFF,0XFF,0X38,0XD6,0X86,0XA9,0X00,0XC8,0X00,0XE0,0X00,0XF0,0X00,0XF8,0X00,0XF8,
0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF8,0X00,0XF0,0X00,0XF0,
0X00,0XE8,0X00,0XE0,0X00,0XD0,0XC3,0X98,0X8A,0X8A,0XB2,0XA4,0XBA,0XC6,0XF7,0XB5,
0X08,0X42,0X41,0X08,0X82,0X10,0X41,0X08,0X00,0X00,0X45,0X29,0XF7,0XBD,0XFF,0XFF,
0X71,0X8C,0X41,0X08,0X04,0X21,0X45,0X29,0X86,0X31,0X86,0X31,0X0C,0X63,0X3C,0XE7,
0XFF,0XFF,0X79,0XD6,0X46,0XB9,0X00,0XE0,0X42,0XC8,0X82,0XA8,0X82,0XB0,0X41,0XD8,
0X82,0XE8,0X82,0XF0,0X41,0XE8,0X41,0XE8,0X41,0XE8,0X41,0XF0,0X41,0XE8,0X41,0XD8,
0X04,0XC1,0X08,0X92,0X4D,0X8B,0X34,0XA5,0XFB,0XC6,0XFB,0XD6,0XBA,0XCE,0X3C,0XE7,
0X30,0X84,0XC3,0X18,0X41,0X08,0X41,0X08,0X00,0X00,0X41,0X08,0XCF,0X7B,0X7D,0XEF,
0X49,0X4A,0X00,0X00,0X04,0X21,0X45,0X29,0X46,0X31,0X86,0X31,0X30,0X84,0XFF,0XFF,
0XFF,0XF7,0XF7,0XDD,0X09,0XDA,0X83,0XF8,0X01,0XF0,0X42,0XC0,0X82,0X98,0X49,0X9A,
0XF3,0XB4,0XF3,0XCC,0X71,0XBC,0X8E,0XBB,0X8E,0XBB,0X30,0XBC,0X71,0XBC,0XF3,0XBC,
0XB6,0XBD,0XFB,0XCE,0XBE,0XE7,0X7D,0XE7,0X3B,0XDF,0XBA,0XD6,0X79,0XCE,0XFB,0XDE,
0X75,0XAD,0X86,0X31,0X41,0X08,0X41,0X08,0X00,0X00,0X00,0X00,0X49,0X4A,0XFB,0XDE,
0X04,0X21,0X41,0X08,0X04,0X21,0X45,0X29,0X45,0X29,0X87,0X39,0XB2,0X94,0XFF,0XFF,
0XBE,0XF7,0X34,0XDD,0X0C,0XEB,0X09,0XFA,0X00,0XF0,0X01,0XD8,0X00,0XD8,0X8B,0XD2,
0X7D,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XBE,0XFF,0X7D,0XEF,0XFB,0XDE,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0XBA,0XD6,
0X78,0XC6,0XC7,0X39,0X00,0X00,0X41,0X08,0X00,0X00,0X00,0X00,0XC7,0X39,0X79,0XCE,
0X00,0X00,0X82,0X10,0XC3,0X18,0X04,0X21,0X05,0X29,0X86,0X31,0XB3,0X9C,0XFF,0XFF,
0XFF,0XF7,0X75,0XDD,0XC7,0XE9,0XC7,0XF9,0X01,0XF8,0X01,0XF0,0X00,0XE8,0X49,0XE2,
0XFB,0XEE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XBE,0XF7,0X7D,0XEF,0XFB,0XDE,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0XBA,0XD6,
0XB9,0XCE,0X08,0X42,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XC7,0X39,0X38,0XC6,
0X00,0X00,0X82,0X10,0X82,0X10,0X04,0X21,0X04,0X21,0X45,0X29,0X30,0X84,0XFF,0XFF,
0XFF,0XFF,0X38,0XDE,0XC4,0XD0,0X00,0XF0,0X01,0XF8,0X00,0XF8,0X00,0XF0,0X08,0XD2,
0XFB,0XE6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XBE,0XF7,0X7D,0XEF,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0X79,0XCE,0XBA,0XD6,
0X79,0XCE,0XC7,0X39,0X41,0X08,0X00,0X00,0X00,0X00,0X00,0X00,0X86,0X31,0X38,0XC6,
0X00,0X00,0X00,0X00,0XC3,0X18,0XCB,0X5A,0X86,0X31,0XC3,0X18,0XCB,0X5A,0X7D,0XEF,
0XFF,0XFF,0X7D,0XEF,0XCF,0XBB,0XC3,0XB0,0X41,0XD0,0X41,0XD0,0X82,0XB8,0X4D,0XB3,
0X7D,0XE7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XBE,0XF7,0XBE,0XF7,0X3D,0XEF,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0X79,0XCE,0XFA,0XD6,
0XF7,0XBD,0X04,0X21,0X86,0X31,0X04,0X21,0X00,0X00,0X00,0X00,0X86,0X31,0X38,0XC6,
0X86,0X31,0XC3,0X18,0XCB,0X5A,0X75,0XAD,0XCF,0X7B,0X41,0X08,0X86,0X31,0XF7,0XBD,
0XFF,0XFF,0XFF,0XFF,0XBE,0XEF,0X74,0XB5,0X30,0X9C,0X30,0X9C,0X72,0XA4,0XBB,0XD6,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XBE,0XF7,0X7D,0XEF,0X3C,0XE7,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0X79,0XCE,0X3C,0XE7,
0X71,0X8C,0X81,0X08,0X0C,0X63,0XCF,0X7B,0X82,0X10,0X00,0X00,0X8A,0X52,0X38,0XC6,
0X75,0XAD,0X71,0X8C,0XB6,0XB5,0X3C,0XE7,0XFB,0XDE,0XC7,0X39,0X00,0X00,0XCF,0X73,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,
0X7D,0XEF,0X7D,0XEF,0X3B,0XDF,0XFA,0XD6,0X79,0XCE,0X79,0XCE,0XFB,0XDE,0XB9,0XCE,
0XC7,0X39,0XC4,0X20,0X71,0X8C,0XBA,0XD6,0X71,0X8C,0XCB,0X5A,0XB2,0X94,0XBA,0XD6,
0XFF,0XFF,0X7D,0XEF,0X7D,0XEF,0XFF,0XFF,0XFF,0XFF,0XB6,0XB5,0X46,0X29,0X05,0X19,
0X75,0XA5,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,
0X7D,0XEF,0X3C,0XE7,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0XBA,0XD6,0XFC,0XDE,0X4E,0X63,
0X42,0X08,0X0C,0X63,0XF7,0XBD,0XBE,0XF7,0XFF,0XFF,0XFB,0XDE,0XFB,0XDE,0XBE,0XF7,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF4,0X9C,0X04,0X21,
0X05,0X21,0XB6,0XA5,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0XBE,0XF7,0X7D,0XEF,
0X3C,0XE7,0XFB,0XDE,0XBA,0XD6,0X79,0XCE,0XFB,0XDE,0XBB,0XD6,0XD1,0X73,0X83,0X18,
0X86,0X39,0X34,0X9D,0XBD,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XFF,0X35,0XD6,0XEB,0XCC,0X43,0XB3,
0X40,0X51,0X05,0X19,0XF5,0X8C,0XBE,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBE,0XF7,0XBE,0XF7,0X7D,0XEF,0X7D,0XEF,0X3C,0XE7,
0XFB,0XDE,0XBA,0XDE,0XBA,0XD6,0X3C,0XDF,0X3A,0XBE,0X4F,0X63,0X82,0X49,0X40,0XA3,
0X23,0XB4,0XCC,0X83,0X3A,0XBE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XF7,0XB5,0XBD,0X82,0X92,0X20,0XF4,0XA0,0XFC,
0X60,0XE4,0X40,0X82,0X84,0X41,0X8F,0X6B,0X77,0XAD,0X3D,0XE7,0XFF,0XFF,0XFF,0XFF,
0XFE,0XFF,0XBE,0XF7,0XBE,0XF7,0XBE,0XF7,0X7D,0XEF,0X7D,0XEF,0X3C,0XE7,0XFB,0XDE,
0XFB,0XDE,0X3D,0XE7,0XBB,0XCE,0X36,0X9D,0X0B,0X6B,0X41,0X6A,0X60,0XC4,0X20,0XFE,
0X60,0XF5,0X00,0X8B,0XC7,0X6A,0X38,0XC6,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7D,0XEF,0X4B,0X7B,0X80,0XB2,0XA0,0XFC,0XA0,0XFC,
0XE0,0XFC,0XE0,0XFC,0XC0,0XCB,0XC1,0X8A,0X45,0X62,0X4D,0X6B,0XB3,0X94,0XF7,0XBD,
0X3D,0XDF,0XFF,0XF7,0XFF,0XFF,0XBE,0XF7,0X7D,0XEF,0X7D,0XEF,0X7D,0XE7,0X3D,0XDF,
0XBA,0XC6,0X75,0XA5,0X8D,0X7B,0X84,0X7A,0X40,0XB3,0XE0,0XEC,0XE0,0XFD,0XE0,0XFD,
0X60,0XF5,0X20,0XE5,0XA0,0XD4,0X0A,0X6B,0XFB,0XDE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7D,0XEF,0XCC,0X93,0X40,0XEB,0X60,0XFC,0XA0,0XFC,
0XE0,0XFC,0X20,0XFD,0X60,0XFD,0X20,0XF5,0XA0,0XD4,0XC0,0XBB,0X42,0X9B,0X45,0X8B,
0X6B,0X9C,0XAE,0X9C,0X71,0X8C,0XB3,0X94,0X33,0X9D,0X34,0XA5,0XF2,0XA4,0XF0,0XB4,
0XCA,0X9B,0X04,0X9B,0X40,0XBB,0X20,0XE4,0X20,0XFD,0XA0,0XFD,0XA0,0XFD,0XE0,0XFD,
0XE0,0XFD,0XE0,0XFD,0X20,0XC4,0X88,0X5A,0X38,0XBE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X78,0XD6,0X46,0XAB,0X40,0XDB,0X20,0XF4,
0X60,0XFC,0XA0,0XFC,0XE0,0XFC,0X60,0XFD,0XA0,0XFD,0X60,0XFD,0X20,0XF5,0XA0,0XDC,
0XC0,0XB3,0XC0,0X51,0X86,0X29,0X0D,0X63,0X8F,0X7B,0X0D,0X5B,0XC7,0X41,0X01,0X82,
0X00,0XC3,0XC0,0XE3,0X60,0XFC,0XA0,0XFC,0XE0,0XFC,0XE0,0XFC,0X60,0XF5,0X60,0XF5,
0X20,0XE5,0X80,0X9B,0X86,0X62,0X30,0X84,0X79,0XCE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X38,0XC6,0X2D,0X9C,0X05,0X93,
0X43,0XA3,0X82,0XB3,0XC2,0XBB,0XC2,0XBB,0X22,0XB4,0X82,0XA3,0X42,0X93,0XC3,0X7A,
0X85,0X62,0X0B,0X63,0X71,0X84,0XB6,0XB5,0X79,0XCE,0X79,0XC6,0XB5,0XAD,0X70,0X94,
0X4A,0X8B,0X06,0X83,0X04,0X93,0X04,0X9B,0X43,0X9B,0X43,0X9B,0X43,0X93,0X04,0X83,
0X08,0X73,0X8D,0X73,0XB3,0X94,0X79,0XCE,0X7D,0XEF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X3C,0XDF,0X38,0XBE,
0X75,0XB5,0X33,0XA5,0X33,0XA5,0XF3,0X9C,0XF3,0X9C,0XF3,0X9C,0XF3,0X94,0XF3,0X9C,
0X35,0XA5,0XF8,0XBD,0XFB,0XDE,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7E,0XEF,
0XBB,0XD6,0XF8,0XBD,0XB6,0XAD,0X75,0XAD,0X34,0XA5,0X33,0X9D,0X34,0X9D,0X35,0XA5,
0XB7,0XAD,0X79,0XC6,0X3C,0XE7,0XBE,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
};
cpp 复制代码
#include "func.h"
#include "font.h"

// func.c
ST7735_Config st7735_cfg = {
    .width = 128,
    .height = 160,
    .rotation = 0
};


/////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------初始化 -----------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////

void spi2_8b_init(void)
	{

}
void spi2_16b_init(void)
	{

}	

void lcd7735_setRotation(uint8_t rotation) {
    rotation %= 4;
    st7735_cfg.rotation = rotation;

    uint8_t madctl = 0;

    switch (rotation) {
        case 0:
            madctl = 0x00; // 正常
            st7735_cfg.width = 128;
            st7735_cfg.height = 160;
            break;
        case 1:
            madctl = 0xA0; // 90°
            st7735_cfg.width = 160;
            st7735_cfg.height = 128;
            break;
        case 2:
            madctl = 0xC0; // 180°
            st7735_cfg.width = 128;
            st7735_cfg.height = 160;
            break;
        case 3:
            madctl = 0x60; // 270°
            st7735_cfg.width = 160;
            st7735_cfg.height = 128;
            break;
    }

    lcd7735_sendCmd(0x36);
    lcd7735_sendData(madctl);
}

void lcd7735_senddata(uint8_t data) 
{
	for(int i=0;i<8;i++){
	  LCD_CLK0;
		if( data& 0x80){
			LCD_SDA1;
		}
		else{
			LCD_SDA0;
		}
		LCD_CLK1;
		data = data<<1;
	
	}

}
void lcd7735_send16bData(uint16_t data) 
	{
	for(int i=0;i<16;i++){
	  LCD_CLK0;
		if( data& 0x8000){
			LCD_SDA1;
		}
		else{
			LCD_SDA0;
		}
		LCD_CLK1;
		data = data<<1;
	
	}

}
	


void lcd7735_ini(void) {
	LCD_CS0;            // CS=0   
	LCD_RST0;           // RST=0 

	HAL_Delay(10);

	LCD_RST1;           // RST=1
	HAL_Delay(10);      // 


  lcd7735_sendCmd(0x11); // Sleep out
  HAL_Delay(120);

  lcd7735_sendCmd(0x3A); // Color mode
  lcd7735_sendData(0x05); // 16-bit

  lcd7735_setRotation(st7735_cfg.rotation); // 使用新函数

  lcd7735_sendCmd(0x29); // Display on
  LCD_CS1;
}


/////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------发送命令----------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////

void lcd7735_sendCmd(unsigned char cmd) {
	LCD_DC0;//dc至0
	lcd7735_senddata(cmd);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------发送数据------------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_sendData(unsigned char data) {
	LCD_DC1;//我们把DC输出为单位T.K.传送数据
	lcd7735_senddata(data);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------填充指定屏幕区域----------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_at(unsigned char startX, unsigned char startY, unsigned char stopX, unsigned char stopY) {
	lcd7735_sendCmd(0x2A);//列地址指令 
	LCD_DC1;
	lcd7735_senddata(0x00);
	lcd7735_senddata(startX);
	lcd7735_senddata(0x00);
	lcd7735_senddata(stopX);

	lcd7735_sendCmd(0x2B);//序列地址指令
	LCD_DC1;
	lcd7735_senddata(0x00);
	lcd7735_senddata(startY);
	lcd7735_senddata(0x00);
	lcd7735_senddata(stopY);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//---------- 点亮所选直接空区的程序---------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_fillrect(unsigned char startX, unsigned char startY, unsigned char stopX, unsigned char stopY, unsigned int color) {
	unsigned char y;
	unsigned char x;
	unsigned char msb = ((unsigned char)((color & 0xFF00) >> 8));//高8位
	unsigned char lsb = ((unsigned char)(color & 0x00FF));	//低8位
  
  // 限幅处理
  if (startX >= st7735_cfg.width || startY >= st7735_cfg.height) return;
  if (stopX >= st7735_cfg.width) stopX = st7735_cfg.width - 1;
  if (stopY >= st7735_cfg.height) stopY = st7735_cfg.height - 1;

	LCD_CS0;//cs至0
	lcd7735_at(startX, startY, stopX, stopY);
	lcd7735_sendCmd(0x2C);//内存写入

	spi2_16b_init();// 初始化 16位
	LCD_DC1;//8位编码
	for (y = startY; y < stopY + 1; y++)
		for (x = startX; x < stopX + 1; x++) {
			lcd7735_send16bData(color);//将16位分成高8位和低8位
		//  lcd7735_sendData(msb);//8位编码
		//  lcd7735_sendData(lsb);//8位编码
		}
//  uint32_t pixelCount = (stopX - startX + 1) * (stopY - startY + 1);
//  while (pixelCount--) {
//      lcd7735_send16bData(color);
//  }

	while ((SPI2->SR) & SPI_SR_BSY); // 更待spi2  原因未知
	spi2_8b_init();
	LCD_CS1;

}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------  点亮像素点   -------------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_putpix(unsigned char x, unsigned char y, unsigned int Color) {

	LCD_CS0;
	lcd7735_at(x, y, x, y);
	lcd7735_sendCmd(0x2C);//存储记录
	LCD_DC1;
	lcd7735_senddata((unsigned char)((Color & 0xFF00) >> 8));//根据预先协议,改变字节大小
	lcd7735_senddata((unsigned char)(Color & 0x00FF));
	LCD_CS1;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------------------------     画线    -------------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_line(unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, unsigned int color) {
	signed char   dx, dy, sx, sy;
	unsigned char  x, y, mdx, mdy, l;

	if (x1 == x2) { // 
		lcd7735_fillrect(x1, y1, x1, y2, color);//线路是直线的话
		return;
	}

	if (y1 == y2) { // 
		lcd7735_fillrect(x1, y1, x2, y1, color);//线路是直线的话
		return;
	}
	//здесь расчет черчения косой линии 
	dx = x2 - x1; dy = y2 - y1;

	if (dx >= 0) { mdx = dx; sx = 1; }
	else { mdx = x1 - x2; sx = -1; }
	if (dy >= 0) { mdy = dy; sy = 1; }
	else { mdy = y1 - y2; sy = -1; }

	x = x1; y = y1;

	if (mdx >= mdy) {//如果x线的长度小于x线
		l = mdx;
		while (l > 0) {
			if (dy > 0) { y = y1 + mdy * (x - x1) / mdx; }
			else { y = y1 - mdy * (x - x1) / mdx; }
			lcd7735_putpix(x, y, color);//清除当前的颜色,并重新开始
			x = x + sx;
			l--;
		}
	}
	else {
		l = mdy;//如果线路长度小于x
		while (l > 0) {
			if (dy > 0) { x = x1 + ((mdx * (y - y1)) / mdy); }
			else { x = x1 + ((mdx * (y1 - y)) / mdy); }
			lcd7735_putpix(x, y, color);//清除当前的颜色,并重新开始
			y = y + sy;
			l--;
		}
	}
	lcd7735_putpix(x2, y2, color);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------              绘制矩形(未填充)          ---------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_rect(char x1, char y1, char x2, char y2, unsigned int color) {
	lcd7735_fillrect(x1, y1, x2, y1, color);
	lcd7735_fillrect(x1, y2, x2, y2, color);
	lcd7735_fillrect(x1, y1, x1, y2, color);
	lcd7735_fillrect(x2, y1, x2, y2, color);
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//------------------------------//字符//--------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_putchar(unsigned char x, unsigned char y, unsigned char chr, unsigned int charColor, unsigned int bkgColor)
{
	unsigned char i;
	unsigned char j;

	LCD_CS0;

	lcd7735_at(x, y, x + 12, y + 8);//规定显示区域大小
	lcd7735_sendCmd(0x2C);//存储记录

	spi2_16b_init();// 初始化16进制
	LCD_DC1;//准备发送数据
	unsigned char k;
	for (i = 0; i < 7; i++)
		for (k = 2; k > 0; k--) {//K=1上半个字符,2下
			unsigned char chl = NewBFontLAT[((chr - 0x20) * 14 + i + 7 * (k - 1))];
			chl = chl << 2 * (k - 1); // 下半个字符移到1个位置左(从下面删除一条线)
			unsigned char h;
			if (k == 2) h = 6; else h = 7; // у нижней половины выведем только 6 точек вместо 7只有六点而不是七点。
			for (j = 0; j < h; j++) {
				unsigned int color;
				//HAL_Delay(100);
				if (chl & 0x80) color = charColor; else color = bkgColor;//если MSBit==0 тогда оставляем цвет бэграунда,если нет тогда цвет //символа如果MS比特==0,然后我们离开的颜色
				chl = chl << 1;//将处理过的位移到左
				unsigned char msb = ((unsigned char)((color & 0xFF00) >> 8));
				unsigned char lsb = ((unsigned char)(color & 0x00FF));	

				lcd7735_send16bData(color);
				// lcd7735_sendData(msb);
				//lcd7735_sendData(lsb);


			}
		}
	// 从块宽度符号的垂直线向右绘制

	unsigned char msb = ((unsigned char)((bkgColor & 0xFF00) >> 8));//高8位
	unsigned char lsb = ((unsigned char)(bkgColor & 0x00FF));	//低8位
	for (j = 0; j < 13; j++) {

		lcd7735_send16bData(bkgColor);//发16位数据
	  //	lcd7735_sendData(msb);
	  //	lcd7735_sendData(lsb);

	}
	while ((SPI2->SR) & SPI_SR_BSY); // 等待  spi2
	spi2_8b_init();
	LCD_CS1;
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------//行输出字符串	//-----------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
void lcd7735_putstr(unsigned char x, unsigned char y, const unsigned char str[], unsigned int charColor, unsigned int bkgColor) {

	while (*str != 0) {
		lcd7735_putchar(x, y, *str, charColor, bkgColor);
		y = y + 8;//Y轴间距
		str++;
	}
}
void lcd7735_putstr_vertical(unsigned char x, unsigned char y, const unsigned char str[], unsigned int charColor, unsigned int bkgColor) {
    while (*str != 0) {
        lcd7735_putchar(x, y, *str, charColor, bkgColor);
        x = x + 8; // 向下移动 8 像素(竖向)
        str++;
    }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//-------------------------------------//输出32*32中文	//-----------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////
//void lcd7735_putchar(unsigned char x, unsigned char y, unsigned char chr, unsigned int charColor, unsigned int bkgColor)
void showhanzi32(unsigned int x,unsigned int y,unsigned char index, unsigned int charColor,unsigned int bkgColor)	
{  
	
	unsigned char i,j,k;
	const unsigned char *temp=hanzi32;    
	temp+=index*128;	// 128------》32*4*8 --》根据生成的十六进制数的多少来取
		
	for(j=0;j<32;j++)//32行
	{
		for(k=0;k<4;k++)// 4个4个取--------------一列被分为4个16进制 k大小与取模大小有关
		{
			for(i=0;i<8;i++)//取模软件影响,每个16进制为8个二进制------------一个16进制为8位
			{ 		     
			 	if((*temp&(1<<i))!=0)//取二进制  为1 是字体 为0 是背景  (1<<i)) i每回左移一位与temp相与 如果temp第i为为1 输出为1 否则为0
				{
					if(i==0)
						lcd7735_putpix(x+(7-i),y+j,charColor);//通用任意字体
					else
						lcd7735_putpix(x+7*k+8-i,y+j,charColor);//通用任意字体
				} 
				else
				{
					if(i==0)
						lcd7735_putpix(x+(7-i),y+j,bkgColor);
					else
						lcd7735_putpix(x+7*k+8-i,y+j,bkgColor);
				}   
			}
			temp++;
		}
	 }
}
void showimage(uint16_t x,uint16_t y) //显示40*40图片
{  
//	uint16_t i,j,k,da;
//	k=0;
//	for(i=0;i<160;i++)//y
//	{	
//		for(j=0;j<128;j++)//x
//		{
//			da=qqimage[k*2+1];//取颜色
//			da<<=8;//取颜色
//			da|=qqimage[k*2]; //取颜色
//			lcd7735_putpix(x+j,y+i,da);;					
//			k++;  			
//		}
//	}
    uint16_t w = 40, h = 40;
    if (x + w > st7735_cfg.width || y + h > st7735_cfg.height) return;

    uint16_t i, j, k = 0;
    for (i = 0; i < h; i++) {
        for (j = 0; j < w; j++) {
            uint16_t da = (qqimage[k * 2 + 1] << 8) | qqimage[k * 2];
            lcd7735_putpix(x + j, y + i, da);
            k++;
        }
    }
}

		
相关推荐
田甲2 小时前
【STM32】SHT30温湿度芯片驱动
stm32·单片机·嵌入式硬件
Molesidy2 小时前
【Embedded Development】对于MCU的片内内存里的分布区域结构详解
单片机·嵌入式硬件
国科安芯3 小时前
AS32A601型MCU芯片flash模块的擦除和编程
java·linux·前端·单片机·嵌入式硬件·fpga开发·安全性测试
创界工坊工作室11 小时前
DPJ-120 基于STC89C52的多功能清扫消杀车控制系统设计(源代码+proteus仿真)
stm32·单片机·嵌入式硬件·51单片机·proteus
Darken0312 小时前
引脚重映射是什么意思?如何使用?
stm32·单片机·引脚重映射
知南x12 小时前
【正点原子STM32MP157 可信任固件TF-A学习篇】(2) STM32MP1 中的 TF-A
stm32·嵌入式硬件·学习·stm32mp157
逐步前行13 小时前
C51_OLED
单片机
欢鸽儿14 小时前
Vitis】Linux 下彻底清除启动界面 Recent Workspaces 历史路径
linux·嵌入式硬件·fpga
LaoZhangGong12314 小时前
深度学习uip中“uip_arp.c“
c语言·stm32·以太网·arp·uip·enc28j60