1.3寸单色OLED显示屏(128x64)驱动编写

        市面上买到的显示屏的驱动给我的感觉很乱,资料也很老,于是突发奇想自己写驱动。

我用的是四线SPI协议的1.3寸的屏幕,显示驱动是SH1106,在STM32F103C8T6单片机实现。

引脚宏定义:

/*********************************  引脚定义  **************************/
#define DC_PIN		GPIO_PIN_2
#define RES_PIN		GPIO_PIN_3
#define CS_PIN		GPIO_PIN_4
#define SCLK_PIN 	GPIO_PIN_5
#define MOSI_PIN	GPIO_PIN_7

#define SPI_PORT 	GPIOA


#define SPI_CLK_ENABLE()  			__HAL_RCC_SPI1_CLK_ENABLE()
#define SPI_PORT_CLK_ENABLE() 		__HAL_RCC_GPIOA_CLK_ENABLE()
	


#define OLED_Cmd()					HAL_GPIO_WritePin(GPIOA,DC_PIN,GPIO_PIN_RESET)
#define OLED_Data()					HAL_GPIO_WritePin(GPIOA,DC_PIN,GPIO_PIN_SET)


#define OLED_RESET()				HAL_GPIO_WritePin(GPIOA,RES_PIN,GPIO_PIN_RESET)
#define	OLED_SET()					HAL_GPIO_WritePin(GPIOA,RES_PIN,GPIO_PIN_SET)

#define OLED_Select_Screen() 		HAL_GPIO_WritePin(GPIOA,CS_PIN,GPIO_PIN_RESET)
#define OLED_UnSelect_Screen() 		HAL_GPIO_WritePin(GPIOA,CS_PIN,GPIO_PIN_SET)

一、写数据/命令

        倘若用的硬件SPI,那么需要初始化硬件以c8t6为例:

SPI_HandleTypeDef SPI1_Handle;

void SPI_OLED::SPI_Init()
{
	SPI1_Handle.Instance = SPI1;
	SPI1_Handle.Init.Mode = SPI_MODE_MASTER;
	SPI1_Handle.Init.Direction = SPI_DIRECTION_2LINES;
	SPI1_Handle.Init.DataSize = SPI_DATASIZE_8BIT;
	SPI1_Handle.Init.CLKPolarity = SPI_POLARITY_LOW;
	SPI1_Handle.Init.CLKPhase = SPI_PHASE_1EDGE;
	SPI1_Handle.Init.NSS = SPI_NSS_SOFT;
	SPI1_Handle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
	SPI1_Handle.Init.FirstBit = SPI_FIRSTBIT_MSB;
	SPI1_Handle.Init.TIMode = SPI_TIMODE_DISABLE;
	SPI1_Handle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
	SPI1_Handle.Init.CRCPolynomial = 1;

	HAL_SPI_Init(&SPI1_Handle);
	__HAL_SPI_ENABLE(&SPI1_Handle);

}



void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
{
	if(hspi -> Instance == SPI1)
	{
		SPI_PORT_CLK_ENABLE();
		SPI_CLK_ENABLE();
		
		GPIO_InitTypeDef GPIO_InitStruct;
		
		GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
		GPIO_InitStruct.Pin = SCLK_PIN | MOSI_PIN;
		GPIO_InitStruct.Pull = GPIO_PULLUP;
		GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
		HAL_GPIO_Init(SPI_PORT,&GPIO_InitStruct);
		
		
		GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
		GPIO_InitStruct.Pin = DC_PIN | RES_PIN | CS_PIN;
		GPIO_InitStruct.Pull = GPIO_PULLUP;
		GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
		HAL_GPIO_Init(SPI_PORT,&GPIO_InitStruct);
	}
}

        重要的的是写数据/命令的接口:

void SPI_OLED::OLED_WriteCommand(uint8_t cmd)
{
	OLED_Cmd();
	HAL_SPI_Transmit(&SPI1_Handle,&cmd,1,10);
}

void SPI_OLED::OLED_WriteData(uint8_t* data,uint8_t DataSize)
{
	OLED_Data();
	HAL_SPI_Transmit(&SPI1_Handle,data,DataSize,1000);

}

        在移植的时候也是修改这两个函数。

二、OLED的初始化

void SPI_OLED::SPI_OLED_Init()
{
	SPI_Init();
	
	OLED_RESET();
	HAL_Delay(100);
	OLED_SET();
	
	OLED_WriteCommand(0xAE);	//设置显示开启/关闭,0xAE关闭,0xAF开启
	
	OLED_WriteCommand(0xD5);	//设置显示时钟分频比/振荡器频率
	OLED_WriteCommand(0x80);	//0x00~0xFF
	
	OLED_WriteCommand(0xA8);	//设置多路复用率
	OLED_WriteCommand(0x3F);	//0x0E~0x3F
	
	OLED_WriteCommand(0xD3);	//设置显示偏移
	OLED_WriteCommand(0x00);	//0x00~0x7F
	
	OLED_WriteCommand(0x40);	//设置显示开始行,0x40~0x7F
	
	OLED_WriteCommand(0xA1);	//设置左右方向,0xA1正常,0xA0左右反置
	
	OLED_WriteCommand(0xC8);	//设置上下方向,0xC8正常,0xC0上下反置

	OLED_WriteCommand(0xDA);	//设置COM引脚硬件配置
	OLED_WriteCommand(0x12);
	
	OLED_WriteCommand(0x81);	//设置对比度
	OLED_WriteCommand(0xFF);	//0x00~0xFF

	OLED_WriteCommand(0xD9);	//设置预充电周期
	OLED_WriteCommand(0xF1);

	OLED_WriteCommand(0xDB);	//设置VCOMH取消选择级别
	OLED_WriteCommand(0x30);

	OLED_WriteCommand(0xA4);	//设置整个显示打开/关闭
	OLED_WriteCommand(0x33);
	
	OLED_WriteCommand(0xA6);	//设置正常/反色显示,0xA6正常,0xA7反色

	OLED_WriteCommand(0x8D);	//设置充电泵
	OLED_WriteCommand(0x14);

	
	OLED_WriteCommand(0xAF);	//开启显示
	SPI_OLED_Clear();

}

        我用的这款屏幕在上电后需要进行一次硬件复位,然后才能进行屏幕的配置(配置命令官方手册里有,倘若没有,就去商家给的源码里面复制)。

ae73c8f3bd7544eca539747eab8b04db.png

        因为初始化之后屏幕显存里都是随机的,所以需要清屏。

三、设置开始显示的坐标

void SPI_OLED::SPI_OLED_SetPos(uint8_t x,uint8_t y)
{
	OLED_WriteCommand(0x0F & x);
	OLED_WriteCommand(((0xF0 & x) >> 4) | 0x10);
	OLED_WriteCommand(0xB0 | y);
}

a794d21e4a494589b95f21ad74daa5fb.png

        主要是这两个命令用来设置列开始坐标,第一个是第四位,第二个是高四位。

1fab6c2bfce243a1bebafba45f2aea0c.png

        这条指令用来设置起始行(页数),在128x64的显示屏里,从上到下被分为8页,每页从上到下(上边为数据的地位,下边为数据的高位)占据一个字节。从左到右就没这种分法。

        按照规则设置坐标即可。

四、清屏函数/缓存更新函数

        为了提高显示效率,增加显示器的可玩性,这里我们定义了一个大小为 8 x 128的缓存区。对屏幕的操作就是对缓存区的操作,最后使用自己定义的缓存更新函数将数据更新到屏幕。

void SPI_OLED::SPI_OLED_Clear()
{
	for(uint8_t i = 0;i < 8;i++)
	{
		for(uint8_t j = 0;j < 128;j++)
		{
			Screen_Buffer[i][j] = 0;
		}
	}

}


void SPI_OLED::SPI_OLED_UPDate()
{
	for(uint8_t i = 0;i < 8;i++)
	{
		SPI_OLED_SetPos(2,i);
		OLED_WriteData(Screen_Buffer[i],128);
	}
}

        因为屏幕本身的问题,在设置坐标的时候如果是(0,0),会出现屏幕左侧出现白边(实际是从(0,0)的左侧开始显示),这时就需要向左偏移一定量的像素。在这里是偏移两个像素。注意:像素的偏移的操作会在很多屏幕驱动上出现,大家以后遇到也不必感到疑惑。

五、字符显示函数

void SPI_OLED::SPI_OLED_ShowChar(uint8_t x,uint8_t y,const char ch,FrontSize Size)
{
	uint8_t pos  = y / 8;
	uint8_t posy = y % 8;
	
	if(Size == FrontSize_F6x8)
	{
		for(uint8_t i = 0;i < 6;i++)
		{
			//字体上半部分
			Screen_Buffer[pos][x + i]	   |= 		OLED_F6x8[ch - 32][i] <<  posy;
			//字体下半部分
			if((pos + 1) < 8)
			{
				Screen_Buffer[pos + 1][x + i]  |= 		OLED_F6x8[ch - 32][i] >>  (8 - posy);
			}
		}
	}
	else
	{
		for(uint8_t i = 0;i < 8;i++)
		{
			//字体上半部分
			Screen_Buffer[pos][x + i] 		|= 		OLED_F8x16[ch - 32][i] <<  posy;
			if((pos + 1) < 8)
			{
				Screen_Buffer[pos + 1][x + i] 	|= 		OLED_F8x16[ch - 32][i] >>  (8 - posy);
			}
			//字体下半部分
			Screen_Buffer[pos + 1][x + i] 	|= 		OLED_F8x16[ch - 32][i + 8] <<  posy;
			if((pos + 2) < 8)
			{
				Screen_Buffer[pos + 2][x + i] 	|= 		OLED_F8x16[ch - 32][i + 8] >>  (8 - posy);

			}

		}
	}

}

        因为我不想在每一页单独显示(单独显示的话就不能跨行显示,且Y轴坐标也有限制,即不能在指定的随意的坐标显示)。因为我有两种字体,所以随便拿出一个判断条件里面的显示逻辑来讲解,以第一个为例:

		for(uint8_t i = 0;i < 6;i++)
		{
			//字体上半部分
			Screen_Buffer[pos][x + i]	   |= 		OLED_F6x8[ch - 32][i] <<  posy;
			//字体下半部分
			if((pos + 1) < 8)
			{
				Screen_Buffer[pos + 1][x + i]  |= 		OLED_F6x8[ch - 32][i] >>  (8 - posy);
			}
		}

        在显示的时候主要是控制Y轴的数据。这里以一个字节为例:

        pos的作用是计算出当前需要在哪个页上边写数据,posy的作用是判断当前写入的Y轴坐标是否为每页的开头,如果当前用户输入的坐标在每页的开头。例如(0,0),(8,0)那么就不需要跨页写入。

比如:

a0d1ed40471d4a10945e45825d1f68a6.png

这是一个跨越Y轴0 - 9坐标像素的一个三角形拿它的中心线来说(显示坐标的Y轴是2),这个数据就是11111100,由图可知已经是跨行写入。那么就要分为两部分来写入,及代码中的上下两部分,由计算不难看出,pos = 0,posy = 2。观察可以得到posy 为第二页中需要写入的数据数量,那么不难想出:将11111100向左移posy(2)个位,得到11110000,那么即可打印出第一页中心线的上半部分,在下一页要想打印出中心线的下半部分,那么就需要把剩下的数据通过位操作,将剩下的数据放在8、9像素(即剩下的数据放到低posy位),剩下的数据是11111100的高两位,所以需要把11111100右移6位即 8 - posy 位;

        另外,有人担心当posy = 0时,代码:

Screen_Buffer[pos + 1][x + i]  |= 		OLED_F6x8[ch - 32][i] >>  (8 - posy);

中的“OLED_F6x8[ch - 32][i] >>  (8 - posy);”是否会影响下一页,不必担心,当posy = 0时,缓存区的数据或上的是数据向右移8位后的数据(假设11111111右移8位,最后得到的数据是00000000),不会影响下一页的其他位,相反,当posy = 0时,pos正好在页的第一位,刚好能打印出完整的一页(8个像素)。

        以上代码是图形像素小于等于8的情况下,当大于8的时候需要写入下一行数据,就要考虑跨多行写入。其本质也和上述原理一样,只不过是连续写入多次罢了(这里的posy计算出来就恒定了,相当于每一页数据的偏移量),如果你能完成上述代码,那就可以尝试写画图函数。

六、字符串显示函数

void SPI_OLED::SPI_OLED_ShowString(uint8_t x,uint8_t y,const char* ch,FrontSize Size)
{
	while(*ch != '\0')
	{
		SPI_OLED_ShowChar(x,y,*ch,Size);
		Size == FrontSize_F6x8 ? x += 7 : x += 9;
		++ch;
	}

        复用字符显示函数。

七,显示数字/小数

void SPI_OLED::SPI_OLED_ShowNum(uint8_t x,uint8_t y,int num,FrontSize Size)
{
	char buff[13];
	sprintf(buff,"%d",num);
	SPI_OLED_ShowString(x,y,buff,Size);
}


void SPI_OLED::SPI_OLED_ShowDecimals(uint8_t x,uint8_t y,double num,FrontSize Size)
{
	char buff[16];
	sprintf(buff,"%lf",num);
	SPI_OLED_ShowString(x,y,buff,Size);
}

        复用字符串显示函数。

八、画图函数

void SPI_OLED::SPI_OLED_DrawImage(uint8_t x,uint8_t y,uint8_t height,uint8_t width,const uint8_t* image)
{
	uint8_t pos  = y / 8;
	uint8_t posy = y % 8;
	uint16_t Pwrite = 0;//与数组元素个数有关,范围应该大于等于屏幕的最大元素个数 128 x 8 = 1024 个
	uint8_t writecount = height / 8;

	if(height % 8)
	{
		writecount++;
	}
	while(writecount--)
	{
		for(uint8_t i = 0;i < width;i++)
		{
			Screen_Buffer[pos][x + i] |= image[Pwrite + i]  <<  posy;
			if((pos + 1) < 8) 
			{
				Screen_Buffer[pos + 1][x + i] |= image[Pwrite + i]  >>  (8 - posy);
			}
		}
		Pwrite += width;
		pos++;
	}
}

        原理同字符串显示函数,不过是重复打印上半部分和下半部分的代码罢了。

九、测试

#include "stm32f1xx_hal.h"
#include "SPI_OLED.h"

void SystemClock_Config(void);
void User_LED();

int main()
{
	HAL_Init();
	
	SystemClock_Config();
	User_LED();
	
	SPI_OLED OLED;

	OLED.SPI_OLED_DrawImage(0,0,64,128,SnowMan);
	OLED.SPI_OLED_UPDate();
	while(1)
	{
		
	}


}

c1fd9b4a0fc94c29a4620d61981c1feb.jpeg

 

 

源码:

函数头文件:

#ifndef __SPI_OLED
#define __SPI_OLED

/*********************************  头文件声明  **************************/

#include "stm32f1xx_hal.h"
#include "OLED_Data.h"
#include <stdio.h>

/*********************************  引脚定义  **************************/
#define DC_PIN		GPIO_PIN_2
#define RES_PIN		GPIO_PIN_3
#define CS_PIN		GPIO_PIN_4
#define SCLK_PIN 	GPIO_PIN_5
#define MOSI_PIN	GPIO_PIN_7

#define SPI_PORT 	GPIOA


#define SPI_CLK_ENABLE()  			__HAL_RCC_SPI1_CLK_ENABLE()
#define SPI_PORT_CLK_ENABLE() 		__HAL_RCC_GPIOA_CLK_ENABLE()
	


#define OLED_Cmd()					HAL_GPIO_WritePin(GPIOA,DC_PIN,GPIO_PIN_RESET)
#define OLED_Data()					HAL_GPIO_WritePin(GPIOA,DC_PIN,GPIO_PIN_SET)


#define OLED_RESET()				HAL_GPIO_WritePin(GPIOA,RES_PIN,GPIO_PIN_RESET)
#define	OLED_SET()					HAL_GPIO_WritePin(GPIOA,RES_PIN,GPIO_PIN_SET)

#define OLED_Select_Screen() 		HAL_GPIO_WritePin(GPIOA,CS_PIN,GPIO_PIN_RESET)
#define OLED_UnSelect_Screen() 		HAL_GPIO_WritePin(GPIOA,CS_PIN,GPIO_PIN_SET)


enum FrontSize
{
	FrontSize_F6x8 = 1,
	FrontSize_F8x16
};

/**************************************************&&  屏幕类定义  &&******************************************************************************/

class SPI_OLED
{
public:
	SPI_OLED()
	{
		OLED_Select_Screen();
		SPI_OLED_Init();
	}
	
	/********************************  更新屏幕操作  ****************************************************/

	//清屏
	void SPI_OLED_Clear();
	//更新数据到显示器
	void SPI_OLED_UPDate();
	
public:
	/********************************  字符函数  ****************************************************/
	
	//显示一个字符
	void SPI_OLED_ShowChar(uint8_t x,uint8_t y,const char ch,FrontSize Size = FrontSize_F6x8);
	//显示字符串
	void SPI_OLED_ShowString(uint8_t x,uint8_t y,const char* ch,FrontSize Size = FrontSize_F6x8);
	//显示数字
	void SPI_OLED_ShowNum(uint8_t x,uint8_t y,int num,FrontSize Size = FrontSize_F6x8);
	//显示小数
	void SPI_OLED_ShowDecimals(uint8_t x,uint8_t y,double num,FrontSize Size = FrontSize_F6x8);

public:
	/********************************  字图像函数  ****************************************************/

	//画点
	void SPI_OLED_DrawPoint(uint8_t x,uint8_t y);
	//画图
	void SPI_OLED_DrawImage(uint8_t x,uint8_t y,uint8_t height,uint8_t width,const uint8_t* image);
	
	
	
private:
	/********************************  用户不可见的功能函数  ****************************************************/

	void OLED_WriteCommand(uint8_t cmd);
	void OLED_WriteData(uint8_t* data,uint8_t DataSize);
	void SPI_Init();
	void SPI_OLED_Init();
	void SPI_OLED_SetPos(uint8_t x,uint8_t y);

private:
	/********************************  屏幕显存  ****************************************************/

uint8_t Screen_Buffer[8][128];

};

#endif

函数源文件:

#include "SPI_OLED.h"


SPI_HandleTypeDef SPI1_Handle;

void SPI_OLED::SPI_Init()
{
	SPI1_Handle.Instance = SPI1;
	SPI1_Handle.Init.Mode = SPI_MODE_MASTER;
	SPI1_Handle.Init.Direction = SPI_DIRECTION_2LINES;
	SPI1_Handle.Init.DataSize = SPI_DATASIZE_8BIT;
	SPI1_Handle.Init.CLKPolarity = SPI_POLARITY_LOW;
	SPI1_Handle.Init.CLKPhase = SPI_PHASE_1EDGE;
	SPI1_Handle.Init.NSS = SPI_NSS_SOFT;
	SPI1_Handle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
	SPI1_Handle.Init.FirstBit = SPI_FIRSTBIT_MSB;
	SPI1_Handle.Init.TIMode = SPI_TIMODE_DISABLE;
	SPI1_Handle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
	SPI1_Handle.Init.CRCPolynomial = 1;

	HAL_SPI_Init(&SPI1_Handle);
	__HAL_SPI_ENABLE(&SPI1_Handle);

}



void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
{
	if(hspi -> Instance == SPI1)
	{
		SPI_PORT_CLK_ENABLE();
		SPI_CLK_ENABLE();
		
		GPIO_InitTypeDef GPIO_InitStruct;
		
		GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
		GPIO_InitStruct.Pin = SCLK_PIN | MOSI_PIN;
		GPIO_InitStruct.Pull = GPIO_PULLUP;
		GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
		HAL_GPIO_Init(SPI_PORT,&GPIO_InitStruct);
		
		
		GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
		GPIO_InitStruct.Pin = DC_PIN | RES_PIN | CS_PIN;
		GPIO_InitStruct.Pull = GPIO_PULLUP;
		GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
		HAL_GPIO_Init(SPI_PORT,&GPIO_InitStruct);
	}
}



void SPI_OLED::OLED_WriteCommand(uint8_t cmd)
{
	OLED_Cmd();
	HAL_SPI_Transmit(&SPI1_Handle,&cmd,1,10);
}

void SPI_OLED::OLED_WriteData(uint8_t* data,uint8_t DataSize)
{
	OLED_Data();
	HAL_SPI_Transmit(&SPI1_Handle,data,DataSize,1000);

}

void SPI_OLED::SPI_OLED_Init()
{
	SPI_Init();
	
	OLED_RESET();
	HAL_Delay(100);
	OLED_SET();
	
	OLED_WriteCommand(0xAE);	//设置显示开启/关闭,0xAE关闭,0xAF开启
	
	OLED_WriteCommand(0xD5);	//设置显示时钟分频比/振荡器频率
	OLED_WriteCommand(0x80);	//0x00~0xFF
	
	OLED_WriteCommand(0xA8);	//设置多路复用率
	OLED_WriteCommand(0x3F);	//0x0E~0x3F
	
	OLED_WriteCommand(0xD3);	//设置显示偏移
	OLED_WriteCommand(0x00);	//0x00~0x7F
	
	OLED_WriteCommand(0x40);	//设置显示开始行,0x40~0x7F
	
	OLED_WriteCommand(0xA1);	//设置左右方向,0xA1正常,0xA0左右反置
	
	OLED_WriteCommand(0xC8);	//设置上下方向,0xC8正常,0xC0上下反置

	OLED_WriteCommand(0xDA);	//设置COM引脚硬件配置
	OLED_WriteCommand(0x12);
	
	OLED_WriteCommand(0x81);	//设置对比度
	OLED_WriteCommand(0xFF);	//0x00~0xFF

	OLED_WriteCommand(0xD9);	//设置预充电周期
	OLED_WriteCommand(0xF1);

	OLED_WriteCommand(0xDB);	//设置VCOMH取消选择级别
	OLED_WriteCommand(0x30);

	OLED_WriteCommand(0xA4);	//设置整个显示打开/关闭
	OLED_WriteCommand(0x33);
	
	OLED_WriteCommand(0xA6);	//设置正常/反色显示,0xA6正常,0xA7反色

	OLED_WriteCommand(0x8D);	//设置充电泵
	OLED_WriteCommand(0x14);

	
	OLED_WriteCommand(0xAF);	//开启显示
	SPI_OLED_Clear();

}



void SPI_OLED::SPI_OLED_SetPos(uint8_t x,uint8_t y)
{
	OLED_WriteCommand(0x0F & x);
	OLED_WriteCommand(((0xF0 & x) >> 4) | 0x10);
	OLED_WriteCommand(0xB0 | y);
}


void SPI_OLED::SPI_OLED_Clear()
{
	for(uint8_t i = 0;i < 8;i++)
	{
		for(uint8_t j = 0;j < 128;j++)
		{
			Screen_Buffer[i][j] = 0;
		}
	}

}


void SPI_OLED::SPI_OLED_UPDate()
{
	for(uint8_t i = 0;i < 8;i++)
	{
		SPI_OLED_SetPos(2,i);
		OLED_WriteData(Screen_Buffer[i],128);
	}
}

void SPI_OLED::SPI_OLED_ShowChar(uint8_t x,uint8_t y,const char ch,FrontSize Size)
{
	uint8_t pos  = y / 8;
	uint8_t posy = y % 8;
	
	if(Size == FrontSize_F6x8)
	{
		for(uint8_t i = 0;i < 6;i++)
		{
			//字体上半部分
			Screen_Buffer[pos][x + i]	   |= 		OLED_F6x8[ch - 32][i] <<  posy;
			//字体下半部分
			if((pos + 1) < 8)
			{
				Screen_Buffer[pos + 1][x + i]  |= 		OLED_F6x8[ch - 32][i] >>  (8 - posy);
			}
		}
	}
	else
	{
		for(uint8_t i = 0;i < 8;i++)
		{
			//字体上半部分
			Screen_Buffer[pos][x + i] 		|= 		OLED_F8x16[ch - 32][i] <<  posy;
			if((pos + 1) < 8)
			{
				Screen_Buffer[pos + 1][x + i] 	|= 		OLED_F8x16[ch - 32][i] >>  (8 - posy);
			}
			//字体下半部分
			Screen_Buffer[pos + 1][x + i] 	|= 		OLED_F8x16[ch - 32][i + 8] <<  posy;
			if((pos + 2) < 8)
			{
				Screen_Buffer[pos + 2][x + i] 	|= 		OLED_F8x16[ch - 32][i + 8] >>  (8 - posy);

			}

		}
	}

}

void SPI_OLED::SPI_OLED_ShowString(uint8_t x,uint8_t y,const char* ch,FrontSize Size)
{
	while(*ch != '\0')
	{
		SPI_OLED_ShowChar(x,y,*ch,Size);
		Size == FrontSize_F6x8 ? x += 7 : x += 9;
		++ch;
	}
}



void SPI_OLED::SPI_OLED_ShowNum(uint8_t x,uint8_t y,int num,FrontSize Size)
{
	char buff[13];
	sprintf(buff,"%d",num);
	SPI_OLED_ShowString(x,y,buff,Size);
}


void SPI_OLED::SPI_OLED_ShowDecimals(uint8_t x,uint8_t y,double num,FrontSize Size)
{
	char buff[16];
	sprintf(buff,"%lf",num);
	SPI_OLED_ShowString(x,y,buff,Size);
}



void SPI_OLED::SPI_OLED_DrawPoint(uint8_t x,uint8_t y)
{
	Screen_Buffer[y / 8][x] 	|= 		0x01 << (y % 8);
	Screen_Buffer[y / 8 + 1][x] |= 		0x01 >>  (8 - (y % 8));
}

void SPI_OLED::SPI_OLED_DrawImage(uint8_t x,uint8_t y,uint8_t height,uint8_t width,const uint8_t* image)
{
	uint8_t pos  = y / 8;
	uint8_t posy = y % 8;
	uint16_t Pwrite = 0;//与数组元素个数有关,范围应该大于等于屏幕的最大元素个数 128 x 8 = 1024 个
	uint8_t writecount = height / 8;

	if(height % 8)
	{
		writecount++;
	}
	while(writecount--)
	{
		for(uint8_t i = 0;i < width;i++)
		{
			Screen_Buffer[pos][x + i] |= image[Pwrite + i]  <<  posy;
			if((pos + 1) < 8) 
			{
				Screen_Buffer[pos + 1][x + i] |= image[Pwrite + i]  >>  (8 - posy);
			}
		}
		Pwrite += width;
		pos++;
	}
}

字库头文件:

#ifndef __OLED_DATA_H
#define __OLED_DATA_H

#include <stdint.h>

/*ASCII字模数据声明*/
extern const uint8_t OLED_F8x16[][16];
extern const uint8_t OLED_F6x8[][6];



/*图像数据声明*/


extern const uint8_t SnowMan[];
extern const uint8_t Cat[];

#endif

字库源文件

#include "OLED_Data.h"
/*宽8像素,高16像素*/
const uint8_t OLED_F8x16[][16] =
{
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//   0
	0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,// ! 1
	0x00,0x16,0x0E,0x00,0x16,0x0E,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// " 2
	0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,
	0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,// # 3
	0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,
	0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,// $ 4
	0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,
	0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,// % 5
	0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,
	0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,// & 6
	0x00,0x00,0x00,0x16,0x0E,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ' 7
	0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,
	0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,// ( 8
	0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,
	0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,// ) 9
	0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,
	0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,// * 10
	0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,
	0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,// + 11
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,// , 12
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,// - 13
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,// . 14
	0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,
	0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,// / 15
	0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
	0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,// 0 16
	0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// 1 17
	0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,
	0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,// 2 18
	0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,
	0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,// 3 19
	0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,
	0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,// 4 20
	0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,
	0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,// 5 21
	0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,
	0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,// 6 22
	0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,
	0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,// 7 23
	0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,
	0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,// 8 24
	0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,
	0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,// 9 25
	0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,
	0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,// : 26
	0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,
	0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,// ; 27
	0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,
	0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,// < 28
	0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
	0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,// = 29
	0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,
	0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,// > 30
	0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,
	0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,// ? 31
	0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,
	0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,// @ 32
	0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,
	0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,// A 33
	0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,
	0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,// B 34
	0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,
	0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,// C 35
	0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,
	0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,// D 36
	0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,
	0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,// E 37
	0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,
	0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,// F 38
	0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,
	0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,// G 39
	0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,
	0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,// H 40
	0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// I 41
	0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,
	0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,// J 42
	0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,
	0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,// K 43
	0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,
	0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,// L 44
	0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,
	0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,// M 45
	0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,
	0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,// N 46
	0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,
	0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,// O 47
	0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,
	0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,// P 48
	0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,
	0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,// Q 49
	0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,
	0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,// R 50
	0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,
	0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,// S 51
	0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,
	0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// T 52
	0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,
	0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,// U 53
	0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,
	0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,// V 54
	0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,
	0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,// W 55
	0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,
	0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,// X 56
	0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,
	0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,// Y 57
	0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,
	0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,// Z 58
	0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,
	0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,// [ 59
	0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,// \ 60
	0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,
	0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,// ] 61
	0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ^ 62
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,// _ 63
	0x00,0x02,0x04,0x08,0x00,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// ` 64
	0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
	0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,// a 65
	0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,
	0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,// b 66
	0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,
	0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,// c 67
	0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,
	0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,// d 68
	0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
	0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,// e 69
	0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// f 70
	0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
	0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,// g 71
	0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,
	0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,// h 72
	0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// i 73
	0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,
	0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,// j 74
	0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,
	0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,// k 75
	0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,
	0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,// l 76
	0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
	0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,// m 77
	0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x00,
	0x00,0x20,0x3F,0x21,0x00,0x20,0x3F,0x20,// n 78
	0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
	0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,// o 79
	0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,
	0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,// p 80
	0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,
	0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,// q 81
	0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,
	0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,// r 82
	0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
	0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,// s 83
	0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,
	0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,// t 84
	0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,
	0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,// u 85
	0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,
	0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,// v 86
	0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,
	0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,// w 87
	0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,
	0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,// x 88
	0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,
	0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,// y 89
	0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
	0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,// z 90
	0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,
	0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,// { 91
	0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,
	0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,// | 92
	0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,
	0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,// } 93
	0x00,0x80,0x40,0x40,0x80,0x00,0x00,0x80,
	0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,// ~ 94
};

/*宽6像素,高8像素*/
const uint8_t OLED_F6x8[][6] = 
{
	0x00,0x00,0x00,0x00,0x00,0x00,//   0
	0x00,0x00,0x00,0x2F,0x00,0x00,// ! 1
	0x00,0x00,0x07,0x00,0x07,0x00,// " 2
	0x00,0x14,0x7F,0x14,0x7F,0x14,// # 3
	0x00,0x24,0x2A,0x7F,0x2A,0x12,// $ 4
	0x00,0x23,0x13,0x08,0x64,0x62,// % 5
	0x00,0x36,0x49,0x55,0x22,0x50,// & 6
	0x00,0x00,0x00,0x07,0x00,0x00,// ' 7
	0x00,0x00,0x1C,0x22,0x41,0x00,// ( 8
	0x00,0x00,0x41,0x22,0x1C,0x00,// ) 9
	0x00,0x14,0x08,0x3E,0x08,0x14,// * 10
	0x00,0x08,0x08,0x3E,0x08,0x08,// + 11
	0x00,0x00,0x00,0xA0,0x60,0x00,// , 12
	0x00,0x08,0x08,0x08,0x08,0x08,// - 13
	0x00,0x00,0x60,0x60,0x00,0x00,// . 14
	0x00,0x20,0x10,0x08,0x04,0x02,// / 15
	0x00,0x3E,0x51,0x49,0x45,0x3E,// 0 16
	0x00,0x00,0x42,0x7F,0x40,0x00,// 1 17
	0x00,0x42,0x61,0x51,0x49,0x46,// 2 18
	0x00,0x21,0x41,0x45,0x4B,0x31,// 3 19
	0x00,0x18,0x14,0x12,0x7F,0x10,// 4 20
	0x00,0x27,0x45,0x45,0x45,0x39,// 5 21
	0x00,0x3C,0x4A,0x49,0x49,0x30,// 6 22
	0x00,0x01,0x71,0x09,0x05,0x03,// 7 23
	0x00,0x36,0x49,0x49,0x49,0x36,// 8 24
	0x00,0x06,0x49,0x49,0x29,0x1E,// 9 25
	0x00,0x00,0x36,0x36,0x00,0x00,// : 26
	0x00,0x00,0x56,0x36,0x00,0x00,// ; 27
	0x00,0x08,0x14,0x22,0x41,0x00,// < 28
	0x00,0x14,0x14,0x14,0x14,0x14,// = 29
	0x00,0x00,0x41,0x22,0x14,0x08,// > 30
	0x00,0x02,0x01,0x51,0x09,0x06,// ? 31
	0x00,0x3E,0x49,0x55,0x59,0x2E,// @ 32
	0x00,0x7C,0x12,0x11,0x12,0x7C,// A 33
	0x00,0x7F,0x49,0x49,0x49,0x36,// B 34
	0x00,0x3E,0x41,0x41,0x41,0x22,// C 35
	0x00,0x7F,0x41,0x41,0x22,0x1C,// D 36
	0x00,0x7F,0x49,0x49,0x49,0x41,// E 37
	0x00,0x7F,0x09,0x09,0x09,0x01,// F 38
	0x00,0x3E,0x41,0x49,0x49,0x7A,// G 39
	0x00,0x7F,0x08,0x08,0x08,0x7F,// H 40
	0x00,0x00,0x41,0x7F,0x41,0x00,// I 41
	0x00,0x20,0x40,0x41,0x3F,0x01,// J 42
	0x00,0x7F,0x08,0x14,0x22,0x41,// K 43
	0x00,0x7F,0x40,0x40,0x40,0x40,// L 44
	0x00,0x7F,0x02,0x0C,0x02,0x7F,// M 45
	0x00,0x7F,0x04,0x08,0x10,0x7F,// N 46
	0x00,0x3E,0x41,0x41,0x41,0x3E,// O 47
	0x00,0x7F,0x09,0x09,0x09,0x06,// P 48
	0x00,0x3E,0x41,0x51,0x21,0x5E,// Q 49
	0x00,0x7F,0x09,0x19,0x29,0x46,// R 50
	0x00,0x46,0x49,0x49,0x49,0x31,// S 51
	0x00,0x01,0x01,0x7F,0x01,0x01,// T 52
	0x00,0x3F,0x40,0x40,0x40,0x3F,// U 53
	0x00,0x1F,0x20,0x40,0x20,0x1F,// V 54
	0x00,0x3F,0x40,0x38,0x40,0x3F,// W 55
	0x00,0x63,0x14,0x08,0x14,0x63,// X 56
	0x00,0x07,0x08,0x70,0x08,0x07,// Y 57
	0x00,0x61,0x51,0x49,0x45,0x43,// Z 58
	0x00,0x00,0x7F,0x41,0x41,0x00,// [ 59
	0x00,0x02,0x04,0x08,0x10,0x20,// \ 60
	0x00,0x00,0x41,0x41,0x7F,0x00,// ] 61
	0x00,0x04,0x02,0x01,0x02,0x04,// ^ 62
	0x00,0x40,0x40,0x40,0x40,0x40,// _ 63
	0x00,0x00,0x01,0x02,0x04,0x00,// ` 64
	0x00,0x20,0x54,0x54,0x54,0x78,// a 65
	0x00,0x7F,0x48,0x44,0x44,0x38,// b 66
	0x00,0x38,0x44,0x44,0x44,0x20,// c 67
	0x00,0x38,0x44,0x44,0x48,0x7F,// d 68
	0x00,0x38,0x54,0x54,0x54,0x18,// e 69
	0x00,0x08,0x7E,0x09,0x01,0x02,// f 70
	0x00,0x18,0xA4,0xA4,0xA4,0x7C,// g 71
	0x00,0x7F,0x08,0x04,0x04,0x78,// h 72
	0x00,0x00,0x44,0x7D,0x40,0x00,// i 73
	0x00,0x40,0x80,0x84,0x7D,0x00,// j 74
	0x00,0x7F,0x10,0x28,0x44,0x00,// k 75
	0x00,0x00,0x41,0x7F,0x40,0x00,// l 76
	0x00,0x7C,0x04,0x18,0x04,0x78,// m 77
	0x00,0x7C,0x08,0x04,0x04,0x78,// n 78
	0x00,0x38,0x44,0x44,0x44,0x38,// o 79
	0x00,0xFC,0x24,0x24,0x24,0x18,// p 80
	0x00,0x18,0x24,0x24,0x18,0xFC,// q 81
	0x00,0x7C,0x08,0x04,0x04,0x08,// r 82
	0x00,0x48,0x54,0x54,0x54,0x20,// s 83
	0x00,0x04,0x3F,0x44,0x40,0x20,// t 84
	0x00,0x3C,0x40,0x40,0x20,0x7C,// u 85
	0x00,0x1C,0x20,0x40,0x20,0x1C,// v 86
	0x00,0x3C,0x40,0x30,0x40,0x3C,// w 87
	0x00,0x44,0x28,0x10,0x28,0x44,// x 88
	0x00,0x1C,0xA0,0xA0,0xA0,0x7C,// y 89
	0x00,0x44,0x64,0x54,0x4C,0x44,// z 90
	0x00,0x00,0x08,0x7F,0x41,0x00,// { 91
	0x00,0x00,0x00,0x7F,0x00,0x00,// | 92
	0x00,0x00,0x41,0x7F,0x08,0x00,// } 93
	0x00,0x08,0x04,0x08,0x10,0x08,// ~ 94
};
/*********************ASCII字模数据*/





/*********************图像数据*/

const uint8_t SnowMan[] = {

 0x00,0x00,0x00,0x00,0x40,0x80,0xC0,0x60,0x38,0x9C,0x10,0x18,0x08,0x08,0x08,0xC8,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x20,0x00,0x00,0x20,0x20,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,
 0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x60,0x60,0x60,0x60,0x60,0xFE,0xFF,0x60,0x60,0x60,0xA0,0x20,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x20,0x20,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x30,0x10,0x19,0x0B,0x4E,0x46,0x4F,0xC9,0x19,
 0x10,0x10,0x30,0x20,0x20,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x7B,0x87,0x03,0x03,0x33,0x33,0x03,0x03,0x03,0x03,0x33,0x33,0x03,0x03,0x87,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0xF8,0x00,0x00,0x20,0x20,0x20,0x60,0x60,0x70,0x50,0x76,0x7F,0x7E,0xF8,0xFF,0xFF,0xF0,0x78,0x7E,0x77,0x72,0x70,0x70,0x70,0x70,0x50,0x70,0x30,0x00,0x00,0x00,0x00,0x10,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x02,0x02,0x06,0x04,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x0C,0x04,0x04,
 0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x10,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x8F,0x9F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0x8F,0x01,0x00,0x00,0x08,0x18,0x00,0xC0,0x80,0x00,0x80,0x00,0x00,0x10,0x00,0x40,0x00,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x40,0x60,0x38,0x0C,0x06,0x03,0x01,
 0xFF,0xFF,0x01,0x06,0x1C,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC1,0x01,0x09,0x10,0x10,0x00,0x00,0x00,0x00,0x80,0xF0,0x80,0x87,0x87,0x83,0xC3,0x43,0x43,0xFF,0x43,0x43,0x43,0x43,0x43,0x41,0x41,0x40,0x40,0x40,0x40,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x01,0x02,0x04,0x08,0x11,0x20,0x44,0x80,
 0x10,0x00,0x44,0x00,0x00,0xF0,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xF0,0x00,0x00,0x44,0x00,0x10,0x80,0x44,0x20,0x11,0x08,0x04,0x02,0x01,0x0C,0x04,0x04,0x02,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x3F,0x1F,0x00,0x00,0x00,0x00,0x80,0x00,0x03,0x07,0x0F,0x0E,0x0E,0x8E,0x0C,0x0C,
 0x0C,0x04,0x00,0x00,0x06,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x70,0x1E,0x03,0x00,0x00,0x00,0x03,0x06,0x0C,0x18,0x30,0x20,0x60,0x40,0xC0,0x80,0x80,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x04,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x88,0xC1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC1,0x88,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x8C,0xCC,0x6C,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x22,0x42,0x43,0x41,
 0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFE,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,0xFE,0xF8,
 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x0E,0x1B,0x11,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x44,
 0x00,0x00,0x04,0x04,0x00,0x00,0x00,0x40,0x40,0x60,0x20,0x20,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x80,0x80,
 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0xE7,0x3C,0x00,0x00,0x00,0x00,0x00,0xD8,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x02,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x01,0x01,0x00,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x03,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x03,0x01,0x01,0x01,0x03,0x02,0x03,0x01,0x00,0x00,0x00,0x00,
 0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"F:\浏览器下载\final_snowman_with_branches_image.bmp",0*/
/* (128 X 64 )*/
};
const uint8_t Cat[] = {
	
 0x00,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x80,0x80,0x80,0xFC,0x1E,0x00,0x00,0xC0,0x70,0x18,0x08,0x08,0x10,0x30,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7E,0x1C,0xCC,0x8C,0x04,0x04,0x04,0x04,0x84,0xCC,0x0C,0x3E,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x0F,0x01,0x01,0x01,0x01,0xF8,0x7F,0x0F,0x00,0x00,0x00,0x3F,
 0x64,0x44,0x44,0x46,0x42,0x43,0x40,0x60,0x20,0x00,0x00,0x00,0x00,0x7F,0xC0,0x80,0x80,0x80,0xC0,0x00,0x00,0x00,0x1F,0x70,0x40,0x40,0x40,0x00,0x00,0x00,0x0F,0x18,0x30,0x20,0x60,0x40,0x46,0x46,0x40,0x60,0x20,0x30,0x1C,0x07,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x60,0x20,0x20,0x2C,0xF0,0x20,0x20,0x20,0xA0,0xE0,0x60,0x3E,0x20,0x20,0x20,0x00,0x00,
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFC,0xF8,0xF0,0xE0,0x80,0x80,0xC0,0xC0,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0xE0,0xC0,0xE0,0xF8,0xFC,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x70,0x38,0x18,
 0x0E,0x0E,0x0C,0x1C,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x37,0x21,0x21,0x23,0x36,0x1C,0x60,0xD8,0x2C,0x24,0x22,0x23,0x23,0x23,0x27,0xFD,0x21,0x21,0x31,0x11,0x13,0x02,0x06,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,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,0xF7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x78,0x1C,0x0E,0x03,0x00,0x00,0x00,0x00,0x00,0x18,0x0C,0x02,0x07,0xD5,0xC4,0x08,0x00,0x00,0x00,0x80,0xF8,0xF8,0xF0,0xE0,
 0xE0,0xE0,0xF0,0xF8,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x03,0xC2,0xE7,0x0F,0x0C,0x08,0x8A,0x8B,0x08,0x08,0x08,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1F,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,0x7F,0x1F,0x47,0x40,0x40,0x20,0x20,0x20,0x30,0x00,0x00,0x00,0x00,0xFC,0x17,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC1,0x63,0xC3,0xC7,0x9C,0xB0,0x20,0x27,0xEF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0x8F,0x07,0x00,0x00,0x00,0x00,0x00,0xF8,0x1C,0x84,0x84,0x84,0x8C,
 0xF8,0x00,0x00,0x10,0x10,0x10,0x91,0xD3,0x76,0x3C,0xFF,0xFC,0xD6,0x13,0x11,0x10,0x10,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x98,0x80,0xC0,0x40,0x00,0x00,0x01,0x87,0x07,0x0F,0x1F,0x1F,0x3F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x3F,0x1F,0x1F,0x1F,0x0F,0x0F,0x07,0x03,0x00,0x80,
 0x00,0x80,0xE0,0x1C,0x00,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC0,0xFF,0xC0,0xC0,0xC0,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x01,0x03,0x03,0x03,0x02,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x18,0x00,0x00,0x00,0x00,0x00,0x01,0x13,0x11,0x11,0x11,0x10,0x18,0x08,0x0C,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x7C,0x07,0x01,0x03,0x0E,0x18,
 0x30,0xA0,0xA0,0xF0,0x5E,0x40,0x00,0x00,0x00,0x00,0x06,0xFC,0xF0,0xC0,0x80,0x80,0x00,0x02,0x01,0x01,0x00,0x18,0x08,0x8C,0x86,0x83,0x81,0xC0,0xE0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x86,0xE3,0x30,0x1C,0x07,0x00,0x80,0xE0,0x30,0x10,0x00,0x00,0x00,0x00,0xC0,0x70,0x10,0x00,
 0x00,0x80,0xC0,0x38,0x0E,0x04,0x00,0xC0,0xE0,0xD0,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x7F,0xFF,0xF3,0x83,0x07,0x1E,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x06,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x0A,0x0E,0x06,0x05,0x01,0x01,0x00,0x10,0x10,0x08,0x08,0x00,0x00,0x30,0x10,0x10,0x18,0x01,0x03,0x03,0x03,
 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x37,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x39,0x3D,0x3D,0x3C,0x38,0x10,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1C,0x1C,0x18,0x00,0x00,0x00,0x00,0x00,0x18,0x0D,0x00,0x00,0x00,0x06,0x03,0x01,0x00,0x00,0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00,0x0C,0x06,0x03,0x00,0x10,0x18,0x0C,0x04,0x06,0x23,0x20,0x10,0x18,0x0C,0x06,0x13,0x19,
 0x0C,0x00,0x00,0x10,0x18,0x08,0x0C,0x0D,0x07,0x01,0x00,0x00,0x03,0x03,0x03,0x00,/*"未命名文件",0*/
/* (128 X 64 )*/
};

 

 

中景园电子1.3OLED技术资料V3.0包括手册硬件参考设计单片机软件例程源码等资料: 01中景园电子1.3OLED显示屏原理图 02中景园电子1.3OLED显示屏数据手册 03中景园电子1.3OLED显示屏测试程序 04中景园电子1.3OLED模组结构图 05中景园电子取字模软件及操作说明.zip 06赠送中景园电子高清0.96与1.3IPS彩色显示屏资料 07赠送中景园电子1.3竖屏技术资料 08OLED反白显示技术资料.rar 关于中景园电子1.3OLED常用操作说明.docx 01中景园电子1.3OLED显示屏_C51系列_SPI_例程 02中景园电子1.3OLED显示屏_C51系列_IIC_例程推荐使用 03中景园电子1.3OLED显示屏_STM32F103RC_IIC_V1.0 04中景园电子1.3OLED显示屏_STM32F103ZET6_IIC_V1.0 05中景园电子1.3OLED显示屏STC89C52RC系列_SPI_例程 06中景园电子1.3OLED显示屏_STM32ZET系列_SPI_例程 07中景园电子1.3OLED显示屏_STM32_F103C8系列_SPI_例程 07中景园电子1.3OLED显示屏_STM32_F103C8系列_SPI_例程.zip 08中景园电子1.3OLED显示屏_STM32F103C8_IIC_V1.0 09中景园1.3OLED-SPI STM32F407程序-直接配合中景园开发板 09中景园电子1.3OLED显示屏_C8051F020系列_IIC_例程 10中景园电子1.3OLED SPI接口STM8L051F3系统参考程序 11中景园电子1.3OLED IIC接口STM8L051F3系统参考程序 12中景园电子1.3OLED显示屏_C8051F340系列_SPI_例程 12中景园电子1.3OLED显示屏_STM8S103K3T6_SPI_例程 13中景园电子1.3OLED显示屏_STM8S103K3T6系列_IIC_例程 14中景园电子1.3OLED显示屏_MSP430系列_SPI_例程 15中景园电子1.3OLED显示屏_MSP430系列_IIC_例程 16中景园电子1.3OLEDSTM32F030-0.96OLED-SPI通信程序 17中景园电子1.3OLEDSTM32F030-0.96OLED-IIC通信程序 18中景园电子1.3OLED0.96OLED显示屏_C8051F020系列_SPI_例程 19中景园电子1.3OLED显示屏_C8051F340系列_IIC_例程 20中景园电子1.3OLED显示屏Arduino例程 25中景园电子显示屏_STM32_F103C8系列_SPI_例程显示16x32及32x32中文字符.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值