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

相关推荐
羽沢312 小时前
ECharts 学习
前端·学习·echarts
养一回月亮!2 小时前
FreeRTOS任务延迟:vTaskDelay与vTaskDelayUntil的深度对比
stm32·单片机·嵌入式硬件
一声沧海笑2 小时前
【GEE学习笔记】GEE中如何上传矢量图?
笔记·学习
炽烈小老头3 小时前
【每天学习一点算法 2025/12/22】将有序数组转换为二叉搜索树
学习·算法
呱呱巨基3 小时前
Linux 进程控制
linux·c++·笔记·学习
暖阳之下3 小时前
学习周报二十七
学习
Zeku3 小时前
20251202 - Linux输入子系统
stm32·freertos·嵌入式软件·linux驱动开发·linux应用开发
一念一花一世界3 小时前
sourcefare零基础学习 - 使用自定义权限优化项目管理
学习·sonarqube·sourcefare·代码扫描工具
代码游侠4 小时前
应用——MPlayer 媒体播放器系统代码详解
linux·运维·笔记·学习·算法