stm32基础学习——OLED显示屏的基本使用

stm32基础学习------按键的使用

所有可用资源可在我的gitee仓库查找,点击即可前往

一、前言

本篇文章继续介绍stm32的一些基本使用,文章主要是介绍OLED显示屏的使用,主要包含如何显示英文字体、中文字体和绘制位图,总体而言它使用的整个流程还是比较麻烦的,不过,咱们需要先懂得如何使用,关于原理方面到后续真的需要后自然而然的就会深入了解了,废话不多说,咱们开始。

二、准备工作

硬件

  • stm32F103C8T6开发板
  • ST-LINK V2下载器一个
  • 四引脚OLED显示屏一个
  • 220Ω电阻两个
  • 杜邦线若干+面包板

软件

其他(需要自行下载,点击前往,下载template文件即可

  • stm32工程模板(由于新建模板比较麻烦,初学还是找个工程模板吧,方便点)

电路图:

三、编写代码

1. 显示英文字体

对于英文字体的显示比较简单,按步骤初始化再输出即可。

cpp 复制代码
#include "stm32f10x.h"
#include "../my_lib/oled.h"
#include "../my_lib/si2c.h"

SI2C_TypeDef si2c;
OLED_TypeDef oled;

void Init_I2C(void); //软i2c初始化
int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size);  //i2c通信函数,用于向设备写数据
void My_OLEDScreen_init(void);

void Init_I2C(void){
	si2c.SCL_GPIOx = GPIOB;
	si2c.SCL_GPIO_Pin = GPIO_Pin_6;
	si2c.SDA_GPIOx = GPIOB;
	si2c.SDA_GPIO_Pin = GPIO_Pin_7;
	
	My_SI2C_Init(&si2c);
}



int main(void)
{
	Init_I2C();
	My_OLEDScreen_init();
	
	// 打印Hello World
	OLED_SetBrush(&oled, PEN_COLOR_TRANSPARENT);  //设置透明画刷
	OLED_SetPen(&oled, PEN_COLOR_WHITE, 1);  //设置白画笔
	OLED_SetCursor(&oled, 24, 50);  //设置光标位置
	
	OLED_DrawString(&oled, "Hello World!");
	OLED_SendBuffer(&oled);  //发送显示
	while(1){
		
	}
}

int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size){  
	return My_SI2C_SendBytes(&si2c, addr, pdata, size);
}

void My_OLEDScreen_init(void){  //oled显示屏初始化
	OLED_InitTypeDef OLED_InitStruct;
	OLED_InitStruct.i2c_write_cb = i2c_write_bytes;
	
	OLED_Init(&oled, &OLED_InitStruct);
}

编译并下载,按下复位键,可以看到OLED显示屏上显示"Hello World !"字样。

2. 显示中文字体

关于中文字体的显示这就比较麻烦了,咱们需要用到取模软件帮我们把中文字体进行编码后才能进行显示。首先我们以自己电脑中已有的字体为例,在电脑搜索框或者控制面板找到"字体"。

例如我拿我电脑的"常规楷体"为例,复制到咱们的工程文件夹中的my_lib->font->ttfttc文件夹当中。


然后返回上一级font文件夹,以记事本方式打开.map文件,在里面录入我们要显示的文字(可以录入所有你想要的),比如我要显示"你好世界"。


保存后,双击运行同级目录下的ttf2c.exe文件(来自于b站博主"铁头山羊"),

这里咱们需要输入三个信息,分别是:字体文件名、字号和要生成的字体名称(自定义,简单点好),比如我这里刚刚用的常规楷体,那么我就输入"常规楷体 16 cgkt16"每个信息之间记得加空格,然后回车等待生成。生成成功:

回到咱们的工程主程序进行引入就可以开始使用了。

然后下面是对应的代码,在原来的基础下添加了显示中文字体的代码

cpp 复制代码
#include "stm32f10x.h"
#include "../my_lib/oled.h"
#include "../my_lib/si2c.h"
#include "cgkt16.h"  // 引入生成的字体文件

SI2C_TypeDef si2c;
OLED_TypeDef oled;

void Init_I2C(void); ////软i2c初始化
int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size);  ///i2c通信函数,用于向设备写数据
void My_OLEDScreen_init(void);

void Init_I2C(void){
	si2c.SCL_GPIOx = GPIOB;
	si2c.SCL_GPIO_Pin = GPIO_Pin_6;
	si2c.SDA_GPIOx = GPIOB;
	si2c.SDA_GPIO_Pin = GPIO_Pin_7;
	
	My_SI2C_Init(&si2c);
}



int main(void)
{
	Init_I2C();
	My_OLEDScreen_init();
	
	// 打印Hello World
	OLED_SetBrush(&oled, PEN_COLOR_TRANSPARENT);  //设置画刷
	OLED_SetPen(&oled, PEN_COLOR_WHITE, 1);  //设置画笔
	OLED_SetCursor(&oled, 24, 50);  //设置光标位置
	
	OLED_DrawString(&oled, "Hello World!");
	
	//打印 你好世界
	OLED_SetFont(&oled, &cgkt16); //设置字体(常规楷体)
	// 打印
	int16_t x = (OLED_GetScreenWidth(&oled) - OLED_GetStrWidth(&oled, "你好世界")) / 2;
	OLED_SetCursor(&oled, 24, 28);  //
	OLED_DrawString(&oled, "你好世界");
	
	OLED_SendBuffer(&oled);  //发送显示
	while(1){
		
	}
}

int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size){  
	return My_SI2C_SendBytes(&si2c, addr, pdata, size);
}

void My_OLEDScreen_init(void){  //oled初始化
	OLED_InitTypeDef OLED_InitStruct;
	OLED_InitStruct.i2c_write_cb = i2c_write_bytes;
	
	OLED_Init(&oled, &OLED_InitStruct);
}

编译下载,按下复位即可显示。

注意:如果没有正常显示,需要你把编码类型改成utf-8的格式,点击keil软件右上角的扳手更改,重新编译烧录并按下复位键即可。

3. 绘制位图

关于这方面,我之前写过在Arduino的版本,这个使用差不多,大家有兴趣可以看看(点击前往),咱们这里也同样尝试显示下面这张图,大家有需要可以自行下载。

打开这个取模网站(点击前往),可以进入到这个界面,我们选择我们要显示的图片,然后打开。

往下拉,输入画布尺寸,我们的显示屏是128x64像素的,然后让图片自适应画布,然后在下面就可以看到我们生成的图片预览了。

然后选定输出格式为Arduino code格式,以及变量名(我这里图片名为kun然后输入kun,最后生成的变量名会为kunkun)。

全选复制上面的代码,回到主程序代码中,把显示内容改成如下即可

cpp 复制代码
const uint8_t bitmap[] = {
		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, 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, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xfc, 0x00, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xff, 0xf8, 0x00, 0x7f, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xfc, 0x7f, 0xf9, 0x1e, 0x7f, 0x0e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x3f, 0xf1, 0xfe, 0x7e, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x1c, 0x00, 0x00, 0x7c, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0x80, 0x00, 0x00, 0x08, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xe7, 0xff, 0xff, 0xc1, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xc0, 0x00, 0x1f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfe, 0x01, 0xfc, 0x07, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, 0x3f, 0xff, 0xc1, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xf0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe3, 0xff, 0xff, 0xfc, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xc7, 0x80, 0xff, 0xfe, 0x3c, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0x8e, 0x00, 0x3f, 0x80, 0x1e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0x9c, 0x3f, 0x1e, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0x18, 0xff, 0x8c, 0x7f, 0x8f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x31, 0xff, 0xc0, 0xff, 0xc7, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xfe, 0x63, 0xff, 0xe1, 0xff, 0xe7, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xfc, 0x67, 0xfc, 0x23, 0xf8, 0x63, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0xfc, 0xe7, 0xf8, 0x13, 0xf0, 0x33, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe7, 0xf8, 0xcf, 0xf8, 0x13, 0xf0, 0x31, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0xf9, 0xcf, 0xf8, 0x13, 0xf0, 0x31, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0xf9, 0xcf, 0xf8, 0x13, 0xf0, 0x30, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8f, 0xf3, 0xcf, 0xfc, 0x33, 0xf8, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xe7, 0xff, 0xe3, 0xff, 0xe0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xe3, 0xff, 0xe3, 0xff, 0xe4, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xf1, 0xff, 0xc3, 0xff, 0xc6, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0xf8, 0xff, 0x01, 0xff, 0x8e, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0xfc, 0x08, 0x00, 0x3f, 0x1e, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x3f, 0x00, 0x3c, 0x00, 0x30, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x0f, 0xe1, 0xff, 0x80, 0xe0, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x0f, 0xe3, 0xff, 0xc7, 0xc0, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x07, 0xe3, 0xff, 0xe3, 0xc0, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x07, 0xe1, 0xff, 0xe1, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0x07, 0xc0, 0x00, 0x01, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x07, 0xe0, 0x00, 0x03, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x07, 0xe1, 0xff, 0xe3, 0xc0, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xfc, 0x07, 0xf0, 0x7f, 0xc7, 0xe1, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x0f, 0xfc, 0x00, 0x0f, 0xf1, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0xfe, 0x1f, 0xff, 0x00, 0x1f, 0xf3, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0x0f, 0xff, 0xe0, 0xff, 0xe3, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0x83, 0xff, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc7, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xf8, 0x01, 0xff, 0xff, 0x0e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x1c, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xfc, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff};
	OLED_SetCursor(&oled, 0, 0); //设置光标到原点
	OLED_DrawBitmap(&oled, 128, 64, bitmap);  //绘制
	OLED_SendBuffer(&oled);  //发送显示

然后下面是我的完整代码

cpp 复制代码
#include "stm32f10x.h"
#include "../my_lib/oled.h"
#include "../my_lib/si2c.h"
#include "cgkt16.h"  // 引入生成的字体文件

SI2C_TypeDef si2c;
OLED_TypeDef oled;

void Init_I2C(void); ////软i2c初始化
int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size);  //i2cͨхگ˽ìԃԚвʨѸд˽ߝ
void My_OLEDScreen_init(void);

void Init_I2C(void){
	si2c.SCL_GPIOx = GPIOB;
	si2c.SCL_GPIO_Pin = GPIO_Pin_6;
	si2c.SDA_GPIOx = GPIOB;
	si2c.SDA_GPIO_Pin = GPIO_Pin_7;
	
	My_SI2C_Init(&si2c);
}



int main(void)
{
	Init_I2C();
	My_OLEDScreen_init();
	const uint8_t bitmap[] = {
		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, 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, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xfc, 0x00, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xff, 0xf8, 0x00, 0x7f, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xfc, 0x7f, 0xf9, 0x1e, 0x7f, 0x0e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x3f, 0xf1, 0xfe, 0x7e, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x1c, 0x00, 0x00, 0x7c, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0x80, 0x00, 0x00, 0x08, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xe7, 0xff, 0xff, 0xc1, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xc0, 0x00, 0x1f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfe, 0x01, 0xfc, 0x07, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, 0x3f, 0xff, 0xc1, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xf0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe3, 0xff, 0xff, 0xfc, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xc7, 0x80, 0xff, 0xfe, 0x3c, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0x8e, 0x00, 0x3f, 0x80, 0x1e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0x9c, 0x3f, 0x1e, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0x18, 0xff, 0x8c, 0x7f, 0x8f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x31, 0xff, 0xc0, 0xff, 0xc7, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xfe, 0x63, 0xff, 0xe1, 0xff, 0xe7, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xfc, 0x67, 0xfc, 0x23, 0xf8, 0x63, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0xfc, 0xe7, 0xf8, 0x13, 0xf0, 0x33, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe7, 0xf8, 0xcf, 0xf8, 0x13, 0xf0, 0x31, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0xf9, 0xcf, 0xf8, 0x13, 0xf0, 0x31, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0xf9, 0xcf, 0xf8, 0x13, 0xf0, 0x30, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8f, 0xf3, 0xcf, 0xfc, 0x33, 0xf8, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xe7, 0xff, 0xe3, 0xff, 0xe0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xe3, 0xff, 0xe3, 0xff, 0xe4, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xf1, 0xff, 0xc3, 0xff, 0xc6, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0xf8, 0xff, 0x01, 0xff, 0x8e, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0xfc, 0x08, 0x00, 0x3f, 0x1e, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x3f, 0x00, 0x3c, 0x00, 0x30, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x0f, 0xe1, 0xff, 0x80, 0xe0, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x0f, 0xe3, 0xff, 0xc7, 0xc0, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x07, 0xe3, 0xff, 0xe3, 0xc0, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x07, 0xe1, 0xff, 0xe1, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0x07, 0xc0, 0x00, 0x01, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x07, 0xe0, 0x00, 0x03, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x07, 0xe1, 0xff, 0xe3, 0xc0, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xfc, 0x07, 0xf0, 0x7f, 0xc7, 0xe1, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x0f, 0xfc, 0x00, 0x0f, 0xf1, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0xfe, 0x1f, 0xff, 0x00, 0x1f, 0xf3, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0x0f, 0xff, 0xe0, 0xff, 0xe3, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0x83, 0xff, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc7, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xf8, 0x01, 0xff, 0xff, 0x0e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x1c, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xfc, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff};
	OLED_SetCursor(&oled, 0, 0); //设置光标到原点
	OLED_DrawBitmap(&oled, 128, 64, bitmap);  //绘制
	OLED_SendBuffer(&oled);  //发送显示
	while(1){
		
	}
}

int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size){  
	return My_SI2C_SendBytes(&si2c, addr, pdata, size);
}

void My_OLEDScreen_init(void){  //oled初始化
	OLED_InitTypeDef OLED_InitStruct;
	OLED_InitStruct.i2c_write_cb = i2c_write_bytes;
	
	OLED_Init(&oled, &OLED_InitStruct);
}

编译下载后按下复位键,即可看到图画。

最后弄个比较有意思的动画,咱们把这个图片水平反转,然后间隔显示,就可以看到kunkun左右摆头观望的效果。回到取模网站,把水平翻转勾选上,重新生成代码然后全选复制。

然后同样操作,只是让显示屏循环显示两个图画而已,完整示例代码如下:

cpp 复制代码
#include "stm32f10x.h"
#include "../my_lib/oled.h"
#include "../my_lib/si2c.h"
#include "cgkt16.h"  // 引入生成的字体文件
#include "delay.h"

SI2C_TypeDef si2c;
OLED_TypeDef oled;

void Init_I2C(void); ////软i2c初始化
int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size);  //i2cͨхگ˽ìԃԚвʨѸд˽ߝ
void My_OLEDScreen_init(void);

void Init_I2C(void){
	si2c.SCL_GPIOx = GPIOB;
	si2c.SCL_GPIO_Pin = GPIO_Pin_6;
	si2c.SDA_GPIOx = GPIOB;
	si2c.SDA_GPIO_Pin = GPIO_Pin_7;
	
	My_SI2C_Init(&si2c);
}



int main(void)
{
	Init_I2C();
	My_OLEDScreen_init();
	const uint8_t bitmap[] = {
		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, 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, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xfc, 0x00, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xff, 0xf8, 0x00, 0x7f, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xfc, 0x7f, 0xf9, 0x1e, 0x7f, 0x0e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x3f, 0xf1, 0xfe, 0x7e, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x1c, 0x00, 0x00, 0x7c, 0x3f, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0x80, 0x00, 0x00, 0x08, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xc0, 0xff, 0xfe, 0x00, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xe7, 0xff, 0xff, 0xc1, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xc0, 0x00, 0x1f, 0xfe, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xfe, 0x01, 0xfc, 0x07, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, 0x3f, 0xff, 0xc1, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xf0, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe3, 0xff, 0xff, 0xfc, 0x78, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xc7, 0x80, 0xff, 0xfe, 0x3c, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0x8e, 0x00, 0x3f, 0x80, 0x1e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0x9c, 0x3f, 0x1e, 0x00, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0x18, 0xff, 0x8c, 0x7f, 0x8f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x31, 0xff, 0xc0, 0xff, 0xc7, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xfe, 0x63, 0xff, 0xe1, 0xff, 0xe7, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xfc, 0x67, 0xfc, 0x23, 0xf8, 0x63, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0xfc, 0xe7, 0xf8, 0x13, 0xf0, 0x33, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe7, 0xf8, 0xcf, 0xf8, 0x13, 0xf0, 0x31, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0xf9, 0xcf, 0xf8, 0x13, 0xf0, 0x31, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0xf9, 0xcf, 0xf8, 0x13, 0xf0, 0x30, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8f, 0xf3, 0xcf, 0xfc, 0x33, 0xf8, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xe7, 0xff, 0xe3, 0xff, 0xe0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xe3, 0xff, 0xe3, 0xff, 0xe4, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf3, 0xf1, 0xff, 0xc3, 0xff, 0xc6, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0xf8, 0xff, 0x01, 0xff, 0x8e, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf3, 0xfc, 0x08, 0x00, 0x3f, 0x1e, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x3f, 0x00, 0x3c, 0x00, 0x30, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x0f, 0xe1, 0xff, 0x80, 0xe0, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x0f, 0xe3, 0xff, 0xc7, 0xc0, 0x71, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x07, 0xe3, 0xff, 0xe3, 0xc0, 0x73, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x07, 0xe1, 0xff, 0xe1, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0x07, 0xc0, 0x00, 0x01, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x07, 0xe0, 0x00, 0x03, 0xc0, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xf8, 0x07, 0xe1, 0xff, 0xe3, 0xc0, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x9f, 0xfc, 0x07, 0xf0, 0x7f, 0xc7, 0xe1, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8f, 0xfc, 0x0f, 0xfc, 0x00, 0x0f, 0xf1, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0xfe, 0x1f, 0xff, 0x00, 0x1f, 0xf3, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0x0f, 0xff, 0xe0, 0xff, 0xe3, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0x83, 0xff, 0xff, 0xff, 0xe7, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xe0, 0x3f, 0xff, 0xff, 0xc7, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xf8, 0x01, 0xff, 0xff, 0x0e, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0x80, 0x00, 0x00, 0x1c, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xfc, 0x00, 0x00, 0x00, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x33, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0xff, 0xff, 0xff, 0xff, 0x11, 0xff, 0xff, 0xff, 0xff, 0xff};
	const uint8_t bitmapFlip[] = {
		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, 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, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0x00, 0x3f, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xfe, 0x00, 0x1f, 0xff, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x70, 0xfe, 0x78, 0x9f, 0xfe, 0x3f, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0x7e, 0x7f, 0x8f, 0xfc, 0x7f, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xfc, 0x3e, 0x00, 0x00, 0x38, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0x10, 0x00, 0x00, 0x01, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0x00, 0x7f, 0xff, 0x03, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0x83, 0xff, 0xff, 0xe7, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xcf, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x7f, 0xf8, 0x00, 0x03, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xe0, 0x3f, 0x80, 0x7f, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x83, 0xff, 0xfc, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0xff, 0xff, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x3f, 0xff, 0xff, 0xc7, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x3c, 0x7f, 0xff, 0x01, 0xe3, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x78, 0x01, 0xfc, 0x00, 0x71, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0x00, 0x78, 0xfc, 0x39, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xf1, 0xfe, 0x31, 0xff, 0x18, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xe3, 0xff, 0x03, 0xff, 0x8c, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf1, 0xe7, 0xff, 0x87, 0xff, 0xc6, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xc6, 0x1f, 0xc4, 0x3f, 0xe6, 0x3f, 0xcf, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xcc, 0x0f, 0xc8, 0x1f, 0xe7, 0x3f, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0x8c, 0x0f, 0xc8, 0x1f, 0xf3, 0x1f, 0xe7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe7, 0x8c, 0x0f, 0xc8, 0x1f, 0xf3, 0x9f, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe7, 0x0c, 0x0f, 0xc8, 0x1f, 0xf3, 0x9f, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0x0f, 0x1f, 0xcc, 0x3f, 0xf3, 0xcf, 0xf1, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0x07, 0xff, 0xc7, 0xff, 0xe7, 0xcf, 0xf9, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0x27, 0xff, 0xc7, 0xff, 0xc7, 0xcf, 0xf9, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xce, 0x63, 0xff, 0xc3, 0xff, 0x8f, 0xcf, 0xf9, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xce, 0x71, 0xff, 0x80, 0xff, 0x1f, 0xcf, 0xf8, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xce, 0x78, 0xfc, 0x00, 0x10, 0x3f, 0xcf, 0xf8, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8e, 0x0c, 0x00, 0x3c, 0x00, 0xfc, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8e, 0x07, 0x01, 0xff, 0x87, 0xf0, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0x8e, 0x03, 0xe3, 0xff, 0xc7, 0xf0, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xce, 0x03, 0xc7, 0xff, 0xc7, 0xe0, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0x03, 0x87, 0xff, 0x87, 0xe0, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0x03, 0x80, 0x00, 0x03, 0xe0, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xcf, 0x03, 0xc0, 0x00, 0x07, 0xe0, 0x1f, 0xf9, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xc7, 0x03, 0xc7, 0xff, 0x87, 0xe0, 0x1f, 0xf9, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe7, 0x87, 0xe3, 0xfe, 0x0f, 0xe0, 0x3f, 0xf9, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xe3, 0x8f, 0xf0, 0x00, 0x3f, 0xf0, 0x3f, 0xf1, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xcf, 0xf8, 0x00, 0xff, 0xf8, 0x7f, 0xf3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf3, 0xc7, 0xff, 0x07, 0xff, 0xf0, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf9, 0xe7, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xf8, 0xe3, 0xff, 0xff, 0xfc, 0x07, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfc, 0x70, 0xff, 0xff, 0x80, 0x1f, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x38, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0x00, 0x00, 0x3f, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, 0x00, 0x3f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0xff, 0xff, 0xff, 0xff, 0x3c, 0xff, 0xff, 0xff, 0xff, 0xff, 
		0xff, 0xff, 0xff, 0xff, 0xff, 0x88, 0xff, 0xff, 0xff, 0xff, 0x3c, 0x7f, 0xff, 0xff, 0xff, 0xff
	};
	//OLED_SetCursor(&oled, 0, 0); //设置光标到原点
	//OLED_DrawBitmap(&oled, 128, 64, bitmap);  //绘制
	//OLED_SendBuffer(&oled);  //发送显示
	while(1){
		OLED_Clear(&oled);  //清屏
		OLED_SetCursor(&oled, 0, 0); //设置光标到原点
	  OLED_DrawBitmap(&oled, 128, 64, bitmap);  //绘制
	  OLED_SendBuffer(&oled);  //发送显示
		
		Delay(500); //500ms
		
		OLED_Clear(&oled);  //清屏
		OLED_SetCursor(&oled, 0, 0); //设置光标到原点
	  OLED_DrawBitmap(&oled, 128, 64, bitmapFlip);  //绘制
	  OLED_SendBuffer(&oled);  //发送显示
		
		Delay(500); //延迟500ms
	}
}

int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size){  
	return My_SI2C_SendBytes(&si2c, addr, pdata, size);
}

void My_OLEDScreen_init(void){  //oled初始化
	OLED_InitTypeDef OLED_InitStruct;
	OLED_InitStruct.i2c_write_cb = i2c_write_bytes;
	
	OLED_Init(&oled, &OLED_InitStruct);
}

效果视频我如下,这是我之前在arduino上实现的,为什么不上传stm的操作的视频呢?别问,问就是懒!

OLED显示动图

四、结束语

好了,stm32的基本使用------OLED显示屏的基本使用先介绍到这,后续有时间我继续更新这方面的文章,敬请期待,我是"风行男孩",咱有缘再见!(码字不易,转载请标明出处!若是文章有帮助,点个赞留个痕迹即可。)

相关推荐
我送炭你添花3 小时前
工业触摸屏:PCAP(投影电容式)触摸屏控制器选型推荐(工业级,2025-2026主流)
嵌入式硬件·自动化
墨黎芜3 小时前
SQL Server从入门到精通——C#与数据库
数据库·学习·信息可视化
wdfk_prog4 小时前
[Linux]学习笔记系列 -- [drivers][dma]stm32-dma
linux·笔记·学习
暖阳之下4 小时前
学习周报三十三
学习
写点什么呢4 小时前
Ltspice_安装与使用
学习·测试工具
CappuccinoRose4 小时前
CSS前端布局总指南
前端·css·学习·布局·flex布局·grid布局·float布局
mango_mangojuice4 小时前
Linux学习笔记(角色,权限管理)1.21
linux·笔记·学习
来自晴朗的明天4 小时前
2、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
好奇龙猫5 小时前
【人工智能学习-AI入试相关题目练习-第十六次】
人工智能·学习
良许Linux5 小时前
DSP的选型和应用
后端·stm32·单片机·程序员·嵌入式