stm32基础学习------按键的使用
所有可用资源可在我的gitee仓库查找,点击即可前往。
一、前言
本篇文章继续介绍stm32的一些基本使用,文章主要是介绍OLED显示屏的使用,主要包含如何显示英文字体、中文字体和绘制位图,总体而言它使用的整个流程还是比较麻烦的,不过,咱们需要先懂得如何使用,关于原理方面到后续真的需要后自然而然的就会深入了解了,废话不多说,咱们开始。
二、准备工作
硬件:
- stm32F103C8T6开发板
- ST-LINK V2下载器一个
- 四引脚OLED显示屏一个
- 220Ω电阻两个
- 杜邦线若干+面包板
软件:
- Keil 5(没安装可以点击进入我的另一篇博客有详细下载及配置教程)
其他(需要自行下载,点击前往,下载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显示屏的基本使用先介绍到这,后续有时间我继续更新这方面的文章,敬请期待,我是"风行男孩",咱有缘再见!(码字不易,转载请标明出处!若是文章有帮助,点个赞留个痕迹即可。)
