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

相关推荐
石像鬼₧魂石14 小时前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
linweidong14 小时前
嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
stm32·单片机·算法
Zero_Era15 小时前
高性价比安全MCU——LKT6830C
单片机·嵌入式硬件·安全
云半S一15 小时前
pytest的学习过程
经验分享·笔记·学习·pytest
微露清风15 小时前
系统性学习C++-第二十讲-哈希表实现
c++·学习·散列表
国科安芯16 小时前
卫星通讯导航FPGA供电单元DCDC芯片ASP4644S2B可靠性分析
单片机·嵌入式硬件·fpga开发·架构·安全性测试
知南x16 小时前
【STM32MP157 视频监控项目】(2) 移植 Nginx
stm32·nginx·音视频
星火开发设计16 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
如果你想拥有什么先让自己配得上拥有17 小时前
近似数的思考学习
学习
ha204289419418 小时前
Linux操作系统学习记录之----自定义协议(网络计算器)
linux·网络·学习