【STM32+HAL库】---- 硬件IIC驱动0.96OLED

硬件开发板:STM32G0B1RET6
软件平台:cubemax+keil+VScode

内容原著声明

代码借鉴学习于以下文章:
STM32 使用硬件IIC驱动0.96寸4针IOLED显示器(HAL库)

1 新建cubemax工程

1.1 配置系统时钟RCC

image

1.2 配置引脚

image

1.3 导出工程

略…

2 代码

2.1 OLED_IIC_Config.h

/*** ************************************************************************* * @file OLED_IIC_Config.h* @author zxr* @brief IIC和OLED基础配置头文件* * ************************************************************************* @copyright Copyright (c) 2024 zxr * *************************************************************************/
#ifndef OLED_IIC_CONFIG_H
#define OLED_IIC_CONFIG_H#include "main.h"
#include "stm32g0xx_hal.h"#define  OLED_ADDRESS 		0x78	//OLED地址  默认0x78//OLED命令控制宏
#define  	LEFT 			0x27
#define  	RIGHT 			0x26
#define  	UP 			0X29
#define  	DOWM			0x2A
#define  	ON			0xA7
#define  	OFF			0xA6#define    	SCREEN_PAGE_NUM		(8)     //屏幕页数
#define    	SCREEN_PAGEDATA_NUM	(128)   //每页的数据个数
#define		SCREEN_COLUMN		(128)   //列数
#define  	SCREEN_ROW		(64)    //行数void WriteCmd(unsigned char cmd);		//写命令
void WriteDat(unsigned char dat);		//写数据
void OLED_ON(void);				//开启OLED
void OLED_OFF(void);				//休眠OLED
void OLED_CLS(void);				//OLED清屏函数
void OLED_Init(void);				//OLED初始化函数
void OLED_RefreshRAM(void);			//更新数据缓冲区
void OLED_ClearRAM(void);			//清除数据缓冲区
void OLED_SetPixel(signed short int x, signed short int y, unsigned char set_pixel);	//设置坐标像素点数据
void OLED_DisplayMode(unsigned char mode);	//屏幕内容取反显示
void OLED_IntensityControl(unsigned char intensity);//屏幕亮度调节
void OLED_Shift(unsigned char shift_num);	//全屏内容偏移指定距离
void OLED_HorizontalShift(unsigned char start_page,unsigned char end_page,unsigned char direction);	//屏幕内容水平方向滚动播放#endif  /*OLED_IIC_CONFIG_H*/

2.2 OLED_IIC_Config.c

/*** ************************************************************************* * @file OLED_IIC_Config.c* @author zxr* @brief IIC初始化配置和OLED屏幕的底层驱动* * ************************************************************************* @copyright Copyright (c) 2024 zxr * *************************************************************************/
#include "OLED_IIC_Config.h"
#include "i2c.h"
#include "MyDelay.h"unsigned char  ScreenBuffer[SCREEN_PAGE_NUM][SCREEN_COLUMN];//定义屏幕的存储空间/**
* @brief  向OLED寄存器地址写一个byte的数据
* @param  addr:寄存器地址
* @param  data:要写入的数据
* @retval 无
*/
void I2C_WriteByte(uint8_t addr, uint8_t data)
{extern I2C_HandleTypeDef hi2c1;HAL_I2C_Mem_Write(&hi2c1, OLED_ADDRESS, addr, I2C_MEMADD_SIZE_8BIT, &data, 1, 10);
}/*** ************************************************************************* @brief 写命令函数* @param[in] cmd  写入的命令* *************************************************************************/
void WriteCmd(unsigned char cmd)
{I2C_WriteByte(0x00, cmd);
}/*** ************************************************************************* @brief 写数据函数* @param[in] dat  写入的数据* *************************************************************************/
void WriteDat(unsigned char dat)
{I2C_WriteByte(0x40, dat);
}/*** ************************************************************************* @brief 开启OLED* *************************************************************************/
void OLED_ON(void)
{WriteCmd(0X8D);  //设置电荷泵WriteCmd(0X14);  //开启电荷泵WriteCmd(0XAF);  //OLED唤醒
}/*** ************************************************************************* @brief 休眠OLED* *************************************************************************/
void OLED_OFF(void)
{WriteCmd(0X8D);  //设置电荷泵WriteCmd(0X10);  //关闭电荷泵WriteCmd(0XAE);  //OLED休眠
}/*** ************************************************************************* @brief OLED清屏函数* *************************************************************************/
void OLED_CLS(void)//清屏
{unsigned char m,n;for(m=0;m<8;m++){WriteCmd(0xb0+m);	//page0-page1WriteCmd(0x00);		//low column start addressWriteCmd(0x10);		//high column start addressfor(n=0;n<128;n++){WriteDat(0x00);}}
}/*** ************************************************************************* @brief OLED初始化函数* *************************************************************************/
void OLED_Init(void)
{WriteCmd(0xAE); //显示关闭WriteCmd(0x20);	//设置内存寻址模式WriteCmd(0x10);	//00,水平寻址模式;01,垂直寻址模式;10,页寻址模式(复位);11,无效WriteCmd(0xb0);	//设置页寻址模式的页起始地址,0-7WriteCmd(0xc8);	//设置COM输出扫描方向WriteCmd(0x00); //-设置低列地址WriteCmd(0x10); //-设置高列地址WriteCmd(0x40); //-设置起始行地址WriteCmd(0x81); //设置对比度控制寄存器WriteCmd(0xff); //亮度调节 0x00~0xffWriteCmd(0xa1); //设置段重新映射0到127WriteCmd(0xa6); //设置正常显示WriteCmd(0xa8); //设置复用比例(1到64)WriteCmd(0x3F); //WriteCmd(0xa4); //0xa4,输出遵循RAM内容;0xa5,输出忽略RAM内容WriteCmd(0xd3); //设置显示偏移WriteCmd(0x00); //不偏移WriteCmd(0xd5); //--set display clock divide ratio/oscillator frequencyWriteCmd(0xf0); //--set divide ratioWriteCmd(0xd9); //--set pre-charge periodWriteCmd(0x22); //WriteCmd(0xda); //--set com pins hardware configurationWriteCmd(0x12);WriteCmd(0xdb); //--set vcomhWriteCmd(0x20); //0x20,0.77xVccWriteCmd(0x8d); //设置DC-DC使能WriteCmd(0x14); //WriteCmd(0xaf); //--turn on oled panelOLED_CLS();
}/*** ************************************************************************* @brief 更新数据缓冲区* *************************************************************************/
void OLED_RefreshRAM(void)
{// 页寻址模式填充for(unsigned short int m = 0; m < SCREEN_ROW/8; m++){WriteCmd(0xb0+m);		//设置页地址b0~b7WriteCmd(0x00);			//设置显示位置—列低地址00-0fWriteCmd(0x10);			//设置显示位置—列高地址10-1ffor(unsigned short int n = 0; n < SCREEN_COLUMN; n++){WriteDat(ScreenBuffer[m][n]);}} 
}/*** ************************************************************************* @brief 清除数据缓冲区* *************************************************************************/
void OLED_ClearRAM(void)
{for(unsigned short int m = 0; m < SCREEN_ROW/8; m++){for(unsigned short int n = 0; n < SCREEN_COLUMN; n++){ScreenBuffer[m][n] = 0x00;}}
}/*** ************************************************************************* @brief 设置坐标像素点数据* * @param[in] x  			起始点横坐标(x:0~127)* @param[in] y  			起始点纵坐标(y:0~63)* @param[in] set_pixel  	该点的数据  SET_PIXEL = 1, RESET_PIXEL = 0* * *************************************************************************/
void OLED_SetPixel(signed short int x, signed short int y, unsigned char set_pixel)
{ if (x >= 0 && x < SCREEN_COLUMN && y >= 0 && y < SCREEN_ROW) {if(set_pixel){ScreenBuffer[y/8][x] |= (0x01 << (y%8));}  else{ScreenBuffer[y/8][x] &= ~(0x01 << (y%8));}}
}/*** ************************************************************************* @brief 屏幕内容取反显示* * @param[in] mode  开关* 					开	ON	0xA7	点亮全屏*  				关	OFF	0xA6	默认此模式,设置像素点亮* * *************************************************************************/
void OLED_DisplayMode(unsigned char mode)
{WriteCmd(mode);
}/*** ************************************************************************* @brief 屏幕亮度调节* * @param[in] intensity  亮度大小(0~255),默认为0x7f* * *************************************************************************/
void OLED_IntensityControl(unsigned char intensity)
{WriteCmd(0x81);WriteCmd(intensity);
}/*** ************************************************************************* @brief 全屏内容偏移指定距离* * @param[in] shift_num  偏移距离(0~63)* * *************************************************************************/
void OLED_Shift(unsigned char shift_num)
{for(unsigned char i = 0; i < shift_num; i++){WriteCmd(0xd3);//设置显示偏移,垂直向上偏移WriteCmd(i);//偏移量HAL_Delay(10);//延时时间}
}/*** ************************************************************************* @brief 屏幕内容水平方向滚动播放* * @param[in] start_page  	开始页数	(0~7)* @param[in] end_page  	结束页数	(0~7)* @param[in] direction  	滚动方向* 								左		LEFT	0x27* 								右		RIGHT	0x26* @note 在开始页数和结束页数之间的内容才会滚动播放,且写命令顺序不得改变* *************************************************************************/
void OLED_HorizontalShift(unsigned char start_page,unsigned char end_page,unsigned char direction)
{WriteCmd(0x2e);  //关闭滚动WriteCmd(direction);//设置滚动方向WriteCmd(0x00);//虚拟字节设置,默认为0x00WriteCmd(start_page);//设置开始页地址WriteCmd(0x05);//设置每个滚动步骤之间的时间间隔的帧频WriteCmd(end_page);//设置结束页地址WriteCmd(0x00);//虚拟字节设置,默认为0x00WriteCmd(0xff);//虚拟字节设置,默认为0xffWriteCmd(0x2f);//开启滚动-0x2f,禁用滚动-0x2e,禁用需要重写数据
}

2.3 OLED_Function.h

/*** ************************************************************************* * @file OLED_Function.h* @author zxr* @brief OLED功能函数驱动头文件* * ************************************************************************* @copyright Copyright (c) 2024 zxr * *************************************************************************/
#ifndef _OLED_FUNCTION_H_
#define _OLED_FUNCTION_H_#include "OLED_IIC_Config.h"//字符串显示函数
void OLED_ShowStr(signed short int x, signed short int y, unsigned char ch[], unsigned char TextSize);
//中文汉字显示函数
void OLED_ShowChinese(signed short int x, signed short int y, unsigned char* ch);
//BMP图片显示函数
void OLED_ShowBMP(signed short int x0,signed short int y0,signed short int L,signed short int H,const unsigned char BMP[]);#endif /* _OLED_FUNCTION_H_ */

2.4 OLED_Function.c

#include "OLED_Function.h"
#include "OLED_Front.h"/*** ************************************************************************* @brief 字符串显示函数* * @param[in] x  	起始点横坐标(0~127)* @param[in] y  	起始点纵坐标(0~63)* @param[in] ch  	字符串(通过双引号引入)* @param[in] TextSize  字符大小(1:6*8 ;2:8*16)* * *************************************************************************/
void OLED_ShowStr(signed short int x, signed short int y, unsigned char ch[], unsigned char TextSize)
{ if (x >= 0 && x < SCREEN_COLUMN && y >= 0 && y < SCREEN_ROW) {int32_t c = 0;unsigned char j = 0;switch(TextSize){case 1:{while(ch[j] != '\0'){c = ch[j] - 32;if(c < 0)	//无效字符break;if(x >= 125 || (127-x < 6))//一行最大显示字符数:21字节显示,多出两列,不显示 || 剩余列小于6不能显示完整字符,换行显示{x = 0;y += 8;//换行显示if(63 - y < 8)	// 不足以显示一行时不显示break;}for(unsigned char m = 0; m < 6; m++){for(unsigned char n = 0; n < 8; n++){OLED_SetPixel(x+m, y+n, (F6x8[c][m] >> n) & 0x01);}}x += 6;j++;}}break;case 2:{while(ch[j] != '\0'){c = ch[j] - 32;if(c < 0)	//无效字符break;if(x >= 127 || (127-x < 8))//16字节显示 || 剩余列小于8不能显示完整字符,换行显示{x = 0;y += 16;//换行显示if(63 - y < 16)	// 不足以显示一行时不显示break;}for(unsigned char m = 0; m < 2; m++){for(unsigned char n = 0; n < 8; n++){for(unsigned char i = 0; i < 8; i++){OLED_SetPixel(x+n, y+i+m*8, (F8X16[c][n+m*8] >> i) & 0x01);}}	}x += 8;j++;}}break;}}OLED_RefreshRAM();
}/*** ************************************************************************* @brief 中文汉字显示函数* * @param[in] x  	起始点横坐标(0~127)* @param[in] y  	起始点纵坐标(0~63)* @param[in] ch  	汉字字模库索引* * @example OLED_ShowCN(0,0,"字");* *************************************************************************/
void OLED_ShowChinese(signed short int x, signed short int y, unsigned char* ch)
{if (x >= 0 && x < SCREEN_COLUMN && y >= 0 && y < SCREEN_ROW) {int32_t  len = 0,offset = sizeof(F16x16_CN[0].index);while(ch[len] != '\0'){if(x >= 127 || (127-x < 16))//8个汉字显示||剩余列小于16不能显示完整字符,换行显示{x = 0;y += 16;if(63 - y < 16)	// 不足以显示一行时不显示break;}//需要处理输入数据大于显示数据的问题for(unsigned char i = 0; i < sizeof(F16x16_CN)/sizeof(GB2312_CN); i++){if(((F16x16_CN[i].index[0] == ch[len]) && (F16x16_CN[i].index[1] == ch[len+1]))){for(unsigned char m = 0; m < 2; m++)	//页{for(unsigned char n = 0; n < 16; n++) // 列{for(unsigned char j = 0; j < 8; j++)	// 行{OLED_SetPixel(x+n, y+j+m*8, (F16x16_CN[i].encoder[n+m*16] >> j) & 0x01);}}}			x += 16;len += offset;break;}else if(F16x16_CN[i].index[0] == ch[len] && ch[len] == 0x20){for(unsigned char m = 0; m < 2; m++){for(unsigned char n = 0; n < 16; n++){for(unsigned char j = 0; j < 8; j++){OLED_SetPixel(x+n, y+j+m*8, (F16x16_CN[i].encoder[n+m*16] >> j) & 0x01);}								}	}			x += 16; len++;break;}}}}OLED_RefreshRAM();
}/*** ************************************************************************* @brief BMP图片显示函数* * @param[in] x0  	起始点横坐标(0~127)* @param[in] y0  	起始点纵坐标(0~63)* @param[in] L  	BMP图片宽度* @param[in] H  	BMP图片高度* @param[in] BMP  	图片取模地址* * @example OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_0);* *************************************************************************/
void OLED_ShowBMP(signed short int x0,signed short int y0,signed short int L,signed short int H,const unsigned char BMP[])
{if (x0 >= 0 && x0 < SCREEN_COLUMN && x0+L <= SCREEN_ROW &&\y0 >= 0 && y0 < SCREEN_COLUMN && y0+H <= SCREEN_ROW) {unsigned char *p = (unsigned char *)BMP;for(signed short int y = y0; y < y0+H; y+=8){for(signed short int x = x0; x < x0+L; x++){for(signed short int i = 0; i < 8; i++){OLED_SetPixel(x, y+i, ((*p) >> i) & 0x01);}p++;}}}OLED_RefreshRAM();
}

2.5 OLED_Front.h

点击查看代码

#ifndef _OLED_FRONT_H_
#define _OLED_FRONT_H_/*** ************************************************************************* @brief 大小6*8的字符取模库* *************************************************************************/
static unsigned char F6x8[][6] =
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 00x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 10x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 20x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 30x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 40x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 50x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 60x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 70x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 80x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 90x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 550x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};/*** ************************************************************************* @brief 大小为8*16的字符取模库* *************************************************************************/
static unsigned char F8X16[][16]=	  
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 00x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 10x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 20x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 30x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 40xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 50x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 60x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 70x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 80x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 90x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 100x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 110x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 120x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 130x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 140x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 150x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 160x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 170x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 180x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 190x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 200x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 210x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 220x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 230x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 240x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 250x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 260x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 270x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 280x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 290x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 300x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 310xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 320x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 330x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 340xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 350x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 360x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 370x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 380xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 390x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 400x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 410x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 420x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 430x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 440x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 450x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 460xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 470x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 480xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 490x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 500x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 510x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 520x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 530x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 540xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 550x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 560x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 570x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 580x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 590x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 600x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 610x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 620x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 630x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 640x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 650x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 660x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 670x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 680x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 690x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 700x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 710x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 720x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 730x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 740x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 750x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 760x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 770x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 780x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 790x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 800x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 810x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 820x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 830x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 840x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 850x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 860x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 870x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 880x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 890x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 900x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 910x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 920x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 930x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
};/*** ************************************************************************* @brief 汉字字模数据结构* index[] 汉字内码索引。使用UTF-8编码格式时为index[3];使用GB2312或GBK编码格式时为index[2];* encoder	点阵码数据* *************************************************************************/
typedef struct {     char index[2];                                             unsigned char encoder[32];                                             
}GB2312_CN;/*** ************************************************************************* @brief GB2312_CN 16*16汉字字模库* 取模设置:共阴、列行式、逆向输出* 数组格式参照代码所示* *************************************************************************/
static GB2312_CN F16x16_CN[] = {{"嵌",0x80,0x80,0xEE,0x88,0x88,0x88,0xE8,0x8F,0x08,0x88,0x78,0x48,0x4E,0x40,0xC0,0x00,0x00,0x00,0x7F,0x24,0x24,0x24,0x7F,0x00,0x81,0x40,0x30,0x0F,0x30,0x41,0x80,0x00,},{"入",0x00,0x00,0x00,0x00,0x00,0x01,0xE2,0x1C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x30,0x40,0x80,0x80,0x00,},{"式",0x10,0x10,0x90,0x90,0x90,0x90,0x90,0x10,0x10,0xFF,0x10,0x10,0x11,0x16,0x10,0x00,0x00,0x20,0x60,0x20,0x3F,0x10,0x10,0x10,0x00,0x03,0x0C,0x10,0x20,0x40,0xF8,0x00,},{"学",0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,},{"习",0x00,0x02,0x02,0x02,0x12,0x22,0xC2,0x02,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x08,0x18,0x08,0x04,0x04,0x04,0x02,0x02,0x41,0x81,0x40,0x3F,0x00,0x00,0x00,},};/*** ************************************************************************* @brief astronaut_x 太空人52*48系列(共10张)  图像取模 纵向取模,字节倒序* *************************************************************************/
static unsigned char astronaut_0[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0xC0,0xA0,0x60,0x60,0x60,0xA0,0xC0,0x40,0x40,0x80,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x10,0x00,0x00,0x30,0x0C,0x02,0x81,0xE0,0xF0,0xF8,0xFC,0xFC,0xFC,0xFC,0xFE,0xFC,0xFC,0xFC,0xF8,0xF8,0xF1,0xE2,0x04,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x40,0x00,0x0F,0x60,0x80,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x60,0x0F,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x08,0x10,0x42,0x84,0x04,0x09,0x13,0x17,0x17,0x0F,0x1F,0x6F,0x1F,0x1F,0x1F,0x0F,0x07,0x07,0x03,0x00,0x00,0x00,0x02,0x44,0x48,0x90,0x62,0x98,0x00,0xE4,0x08,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x18,0x40,0x04,0x28,0x20,0x98,0xA4,0xA4,0x18,0x40,0x00,0x02,0x00,0x0A,0x04,0x03,0x0C,0xC0,0x00,0x40,0x80,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x08,0x10,0x42,0x00,0x08,0x38,0x48,0x05,0x24,0x1E,0x09,0x00,0x04,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,	
};
static unsigned char astronaut_1[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE4,0x60,0x20,0x20,0x20,0x00,0x44,0x44,0x80,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,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,0x30,0x8C,0xC2,0xE1,0xE3,0xF1,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x01,0x02,0x04,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0xB0,0x70,0x4F,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x87,0x07,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x3F,0x9F,0x1F,0x1F,0x0B,0x00,0x04,0x03,0x00,0x00,0x04,0x00,0x08,0x01,0x40,0x22,0x14,0x08,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,0x02,0x08,0x10,0x40,0x80,0x00,0x00,0x00,0x01,0x09,0x26,0xB0,0x20,0xC0,0xA0,0x80,0x00,0x41,0x08,0x05,0x00,0x08,0x05,0x03,0x08,0x80,0x00,0x00,0x00,0x01,0x04,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x80,0x08,0x08,0x29,0x26,0x0E,0x00,0x09,0x00,0x05,0x00,0x00,0x02,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_2[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x40,0x44,0x80,0x08,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB0,0x9C,0xCE,0xC7,0xC1,0xC1,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x30,0x81,0x02,0x04,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF0,0x00,0x00,0x00,0x00,0x00,0x80,0xEC,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x7F,0x93,0x10,0x08,0x04,0x04,0x03,0x00,0x00,0x10,0x21,0x40,0x82,0x44,0x28,0x10,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x1C,0x70,0xA0,0xE0,0x80,0x02,0x92,0x12,0x00,0x00,0x10,0x09,0x06,0x03,0x08,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x10,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x08,0x08,0x2F,0x22,0x1E,0x00,0x09,0x00,0x05,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_3[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x00,0x40,0x40,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,0x30,0x7C,0x8E,0x81,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0xC4,0x30,0xC0,0x02,0x04,0x10,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x00,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE2,0x2F,0x20,0x20,0x40,0x00,0x00,0x01,0x04,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x08,0x10,0x00,0x03,0x07,0x07,0x0F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x10,0xF0,0x10,0x08,0x04,0x04,0x03,0x20,0x42,0x06,0x0C,0x38,0xE0,0xC1,0x02,0x04,0x90,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x10,0x20,0x18,0xA4,0xA4,0x18,0x01,0x06,0x08,0x10,0x01,0x0D,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x04,0x18,0x24,0x22,0x11,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x06,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_4[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x44,0x24,0x24,0x20,0x22,0x20,0x20,0x44,0x44,0x80,0x08,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xEC,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x1B,0x04,0x18,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x1F,0x00,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,0x01,0x07,0x07,0x0F,0x0F,0x1F,0x10,0x10,0x10,0x10,0x10,0xF0,0x90,0x08,0x38,0x74,0xC2,0x81,0x00,0x00,0x00,0x00,0x01,0x04,0x08,0x10,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x20,0x18,0x00,0x00,0x00,0x02,0x04,0x10,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x16,0x38,0x70,0xF0,0x83,0x8F,0x94,0x28,0x08,0x08,0x14,0xC6,0x19,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x30,0x00,0x00,0x00,0x00,0x02,0x04,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x28,0x04,0x23,0x03,0x11,0x0E,0x45,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_5[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x60,0x44,0xC4,0x84,0x08,0x10,0x20,0x4C,0x80,0x00,0x00,0x00,0x08,0x08,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,0x30,0x1C,0x1E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x05,0x0A,0x0C,0x30,0xC1,0x02,0x0C,0x10,0x60,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x70,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xF0,0x4F,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x0C,0x08,0x10,0x10,0x10,0x00,0x30,0xA0,0x30,0xD0,0x08,0x04,0x02,0x02,0x01,0x00,0x00,0x03,0x06,0x1C,0x38,0xE1,0xE2,0x9C,0x08,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x03,0x18,0x60,0x07,0x3E,0x28,0xB0,0xC0,0x80,0xA0,0x10,0x08,0x00,0x04,0x8A,0x04,0x03,0x0C,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x28,0x00,0x00,0x00,0x03,0x04,0x18,0x60,0x80,0x00,0x01,0x00,0x01,0x01,0x00,0x01,0x02,0x04,0x08,0x38,0x48,0x47,0x26,0x1E,0x09,0x09,0x04,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_6[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x20,0x20,0x60,0xA0,0x20,0x60,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x0C,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3F,0xFF,0xFF,0xFF,0xFE,0xFC,0xF8,0xC0,0x00,0x00,0x10,0x20,0x80,0x40,0x40,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x30,0xC0,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x87,0x6F,0x0F,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x10,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x04,0x05,0x08,0x08,0x10,0x10,0x10,0x90,0x60,0x30,0x10,0x10,0x18,0x48,0x14,0x42,0x01,0x09,0x20,0x42,0x84,0x48,0x30,0x40,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x08,0x10,0x40,0x00,0x00,0x01,0x84,0x89,0x64,0x0C,0x92,0x21,0x02,0x0C,0x01,0x0A,0xC0,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x02,0x04,0x39,0x4A,0x3C,0x22,0x12,0x01,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_7[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0xC0,0xE0,0x60,0x60,0x20,0xA0,0xC0,0xC0,0xC0,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,0x30,0x0C,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0x80,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x00,0x0F,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x0F,0x1F,0x1F,0x3F,0x3F,0xBF,0x7F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x08,0x10,0x00,0x03,0x04,0x00,0x0E,0x14,0x18,0x10,0x90,0x60,0x20,0x30,0x90,0xD0,0x08,0x04,0x04,0x82,0x01,0x01,0x00,0x82,0x44,0x08,0x10,0xC0,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x0B,0x20,0x40,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x10,0x40,0x81,0x07,0x1C,0xB0,0xF0,0x01,0x8C,0x08,0x63,0x00,0x00,0x01,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x01,0x02,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x01,0x02,0x00,0x04,0x00,0x18,0x24,0x20,0x12,0x01,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
static unsigned char astronaut_8[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xC0,0xC0,0x24,0x20,0x20,0x20,0xA0,0xC0,0xC4,0xC4,0x80,0x08,0x10,0x20,0x40,0x80,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x02,0x07,0x03,0x01,0x00,0xE0,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0x80,0x00,0x00,0x00,0x00,0x08,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,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x04,0x04,0x08,0x00,0x10,0x18,0x18,0x10,0x20,0x10,0x10,0x11,0x09,0x05,0x04,0x03,0x00,0x00,0x00,0x03,0x04,0x0A,0xA4,0xE8,0x10,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x10,0x20,0x80,0x00,0x00,0x00,0x00,0x04,0x20,0x40,0x23,0x18,0x20,0x80,0x80,0x0A,0x41,0x09,0x00,0x00,0x08,0x84,0x03,0x08,0xA0,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x04,0x10,0x20,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x81,0x04,0x00,0x08,0x30,0x48,0x04,0x23,0x17,0x09,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,};
static unsigned char astronaut_9[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x00,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x7C,0x0E,0x07,0x02,0xC0,0xF0,0xF8,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0x80,0x02,0x04,0x10,0x20,0x80,0x00,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x80,0x00,0x00,0x00,0x0F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x8F,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x04,0x08,0x00,0x10,0x11,0x11,0x23,0x23,0x13,0x13,0x93,0x0B,0x07,0x07,0x03,0x00,0x00,0x00,0x02,0x45,0x0A,0x64,0xC8,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x40,0x01,0x24,0x10,0x40,0x14,0xA0,0x04,0x00,0x00,0x01,0x02,0x88,0x04,0x07,0xB0,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x04,0x10,0x20,0x80,0x00,0x01,0x02,0x02,0x01,0x01,0x02,0x04,0x00,0x08,0x30,0x48,0x45,0x26,0x1A,0x01,0x08,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};#endif

3 功能验证

首先在main.c中引入头文件

/* USER CODE BEGIN Includes */
#include "OLED_IIC_Config.h"
#include "OLED_Function.h"
#include "OLED_Front.h"
/* USER CODE END Includes */

随即根据要求在main函数中添加对应功能函数即可

3.1 显示英文字符

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();OLED_Init();  //OLED初始化OLED_ShowStr(0,0,"OLED-TEXT",1);OLED_ShowStr(0,16,"OLED-TEXT",2);
}

3.2 显示中文汉字

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();OLED_Init();  //OLED初始化OLED_ShowChinese(0,16,"嵌");OLED_ShowChinese(16,16,"入");OLED_ShowChinese(32,16,"式");
}

注意】使用时应将编译器编码选项选择为GBK系列,否则编译报错,尤其注意通过keil修改后,再用vscode打开看见有乱码时,一定检查一下编译器的编码格式是否为GBK系列

3.3 显示内容垂直偏移指定距离

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();OLED_Init();  //OLED初始化OLED_ShowStr(0,40,"OLED-TEXT",1);OLED_ShowChinese(0,48,"嵌");OLED_ShowChinese(16,48,"入");OLED_ShowChinese(32,48,"式");OLED_Shift(20);
}

3.4 显示内容水平循环滚动

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();OLED_Init();  //OLED初始化OLED_ShowStr(0,0,"OLED-TEXT",1);OLED_ShowChinese(0,16,"嵌");OLED_ShowChinese(16,16,"入");OLED_ShowChinese(32,16,"式");OLED_HorizontalShift(0,3,RIGHT);
}

3.3 显示BMP图片

int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();OLED_Init();  //OLED初始化while (1){OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_0);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_1);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_2);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_3);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_4);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_5);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_6);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_7);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_8);OLED_ShowBMP(0,0,52,48,(unsigned char *)astronaut_9);}
}

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

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

相关文章

【盖世汽车-注册安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

SQLite3 数据库

一、SQLite3 命令 1. 基本命令 .tables&#xff1a;用于查看数据库中的表。.headers on/off&#xff1a;开启或者关闭表头&#xff0c;方便查看表结构。.mode column&#xff1a;使列对齐&#xff0c;增强数据的可读性。.width 列宽1 列宽2&#xff1a;设置每一列的列宽&…

抖音无水印视频下载

抖音想必大家都不陌生&#xff0c;大家经常会在抖音上刷到各种有意思的视频&#xff0c;但是我们想保存就会发现会有水印信息&#xff0c;那么我们要如何下载无水印的图片呢&#xff1f; 使用说明 我们可以先点击抖音的分享按钮&#xff0c;复制一下视频的链接 然后打开智游剪…

Spring6梳理5——基于XML管理Bean环境搭建

以上笔记来源&#xff1a; 尚硅谷Spring零基础入门到进阶&#xff0c;一套搞定spring6全套视频教程&#xff08;源码级讲解&#xff09;https://www.bilibili.com/video/BV1kR4y1b7Qc 目录 ①搭建模块 ②引入配置文件 ③创建BeanXML文件 ④创建Java类文件&#xff08;User…

pycharm项目里有中文右下角修改无效怎么办 包括注释里有中文

在我们编写pycharm项目时&#xff0c;可能会遇到项目里面有中文运行导致报错&#xff0c;即使我们在右下角修改编码格式&#xff0c;还是无效的 解决办法&#xff1a;点击左上角File,Settings,找到Editor里面的File Encodings ,圈住的位置都要改为UTF-8点击Apply就可以了

NAT技术-将多个内部网络设备映射到一个公共IP地址

问题&#xff1a; 今天上课的时候老师让我们在VMware填同一个子网ip 192.168.196.0&#xff0c;然后给我们的linux镜像都是同一个压缩包&#xff0c;结果我们的静态ip地址都是同一个。 192.168.196.0下面有256个ip地址&#xff0c;范围是192.168.196.0到192.168.196.255。我们…

浏览器百科:网页存储篇-Session storage应用实例(九)

1.引言 在前面的文章中&#xff0c;我们详细介绍了如何在 Chrome 浏览器中打开并使用 Session storage 窗格&#xff0c;进行数据的查看、编辑和管理。作为网页存储技术的重要组成部分&#xff0c;sessionStorage在提升用户体验和数据管理能力方面发挥了重要作用。在本篇《浏览…

谷歌seo网址如何快速被收录?

想让你的网站快速被搜索引擎收录&#xff0c;可以采取几种不同的策略。首先&#xff0c;确保你的网站内容丰富、有价值&#xff0c;搜索引擎更喜欢收录内容质量高的网站。同时&#xff0c;增强网站的外链建设&#xff0c;做好这些站内优化&#xff0c;接下来就是通过谷歌搜索控…

一款云笔记支持在线协同文档,脑图,白板演示的工具,多个设备同步,让灵感与你同行(附源码)

前言 在快节奏的工作环境中&#xff0c;如何高-效地记录、整理并分享工作笔记已经成为了一项重要的技能。传统的笔记方式往往难以满足跨设备、即时同步以及团队协作的需求&#xff0c;导致信息孤岛和工作效率低下。面对这样的挑战&#xff0c;我们迫切需要一种全新的工具来改变…

Type-C接口上的DisplayPort

随着高清视频和多媒体内容的快速发展&#xff0c;数字接口技术也在不断演进。在众多接口技术中&#xff0c;DisplayPort&#xff08;简称DP&#xff09;凭借其高带宽、高分辨率支持和多功能性&#xff0c;逐渐成为显示技术的领跑者。本文将深入探讨DisplayPort的技术特点、应用…

NineData云原生智能数据管理平台新功能发布|2024年8月版​​

本月发布 10 项更新&#xff0c;其中重点发布 5 项、其他发布 5 项。 重点发布​ 数据库 DevOps - 敏感数据保护功能大幅升级​ 敏感数据保护全新升级&#xff0c;新增支持敏感数据等级&#xff0c;方便进行分类分级管控&#xff0c;加入数据类型概念&#xff0c;用于智能识…

VMWARE VCENTER6.7 VCSA通过Web5480进行版本升级

VCENTER当前版本如下图 操作前先给VCENTER打一个快照&#xff0c;出问题可以立即回退 1、先下载VCSA镜像&#xff0c;并将VCSA镜像上传至DataStore中&#xff1b; 2、选中VCSA虚拟机&#xff0c;编辑配置 3、挂载新上传的VCSA镜像&#xff0c;一定要勾选“已连接”和“打开电源…

利用大模型实时提取和检索多模态数据探索-利用 Indexify 进行文档分析

概览 传统的文本提取方法常常无法理解非结构化内容&#xff0c;因此提取数据的数据往往是错误的。本文将探讨使用 Indexify&#xff0c;一个用于实时多模态数据提取的开源框架&#xff0c;来更好地分析pdf等非结构化文件。我将介绍如何设置 Indexify&#xff0c;包括服务器设置…

ssm微信小程序的英语学习激励系统论文源码调试讲解

2 关键技术介绍 2.1 SSM框架 开发信息管理系统的主流框架是SSM&#xff08;Spring Spring MVC MyBatis&#xff09;&#xff0c;SSM框架web层使用Spring MVC框架&#xff0c;使传输前后端数据变得简单&#xff1b;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框…

【Python 千题 —— 算法篇】字符串替换

Python 千题持续更新中 …… 脑图地址 &#x1f449;&#xff1a;⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 在日常编程中&#xff0c;我们经常会遇到需要对字符串中的特定字符或子串进行替换的需求。比如&#xff0c;替换文本中的敏感词汇、…

【Bug】Ubuntu22.04英伟达驱动安装失败,重启后服务器卡在进入系统/grub的页面

目录 报错内容1、安装英伟达驱动&#xff1a;Failed to initialize NVML: Driver/library version mismatch2、重启后卡在系统页面3、在解决完问题2后&#xff0c;尝试继续解决问题1&#xff0c;还是失败4、能ping通服务器但是无法ssh连接 解决方案1、重启后卡在系统页面&#…

kafka的安装和启动

一、kafka介绍 1&#xff0c;kafka简单介绍 kafka是一款分布式、支持分区的、多副本&#xff0c;基于zookeeper协调的分布式消息系统。最大的特性就是可以实时处理大量数据来满足需求。 2&#xff0c;kafka使用场景 1&#xff0c;日志收集&#xff1a;可以用kafka收集各种服务…

【数据结构初阶】二叉树--堆(顺序结构实现)

hello&#xff01; 目录 一、实现顺序结构二叉树 1.1 堆的概念和结构 1.2 堆及二叉树的性质 1.3 堆的实现 1.3.1 创建堆的结构 1.3.2 初始化和销毁 1.3.3 入堆向上调整算法&#xff08;创建一个小堆&#xff09; 1.3.4 出堆向下调整算法&#xff08;小堆&#x…

行空板上YOLO和Mediapipe视频物体检测的测试

Introduction 经过前面三篇教程帖子&#xff08;yolov8n在行空板上的运行&#xff08;中文&#xff09;&#xff0c;yolov10n在行空板上的运行&#xff08;中文&#xff09;&#xff0c;Mediapipe在行空板上的运行&#xff08;中文&#xff09;&#xff09;的介绍&#xff0c;…

欧拉数据库的搭建及其部署

数据库的搭建 进行数据库安装前&#xff0c;必须保证软件yum仓库搭建完成 使用命令 dnf install mariadb-server&#xff0c;发现冲突selinux-policy-targeted-35.5-21.oe2203sp3.noarch有问题 [rootlocalhost yum.repos.d]# dnf install mariadb-server [rootlocalhost y…