4.8 OLED显示器
4.8.1 OLED显示器基本原理
本节课就是用I2C总线向内存写数据,写0灭写1亮很好理解。
4.8.2屏幕初始化
构造一个函数My_SoftwareI2C_Init用来对软I2C初始化。
这部分是对OLED进行初始化。
4.8.3基本概念和操作
画笔与画刷
屏幕坐标系
4.8.4文字相关操作
1.打印字符串
2.设置字体
在ttfttc中设置想要的字体
在my_lib font中的.map文件设置想打的文字
在爱心程序中,输入对应的名称转成C语言,将hyjk16.h复制下来并包含头文件。
值得注意的是我一开始编译方式是GB2312,所以你好世界打不出来,改成UTF-8把你要打的文字写进去就可以了,上图我是又把编译方式改回了GB2312。
3.格式化打印当前日期
首先设置默认字体,然后设置光标位置,最后打印出来。(第三行老师一开始少了3个d)
4.设置文本区域
4.8.5绘图相关操作
1.画线
2.画圆和矩形
3.绘制位图
想要绘制这个位图,首先我们得去image2cpp网站
然后选择的图片尽量小一点
这是我想要打的图片,代码也会附着。
5.动画(勾选Flip image中的)
附代码:
#include "stm32f10x.h"
#include "si2c.h"
#include "oled.h"
#include "hyjk15.h"
#include "delay.h"
SI2C_TypeDef si2c; //取名为si2c结构体
OLED_TypeDef oled; //所使用OLED名称
uint8_t bitmap[] = {// '323c8759de1a30fe91cbde20d63f6cbb', 128x64px
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xfc, 0x03, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x01, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff,
0xff, 0xff, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xff,
0xff, 0xff, 0xff, 0xe0, 0x03, 0xff, 0xff, 0xff, 0xf0, 0xfc, 0x0f, 0xff, 0xff, 0xf0, 0x0f, 0xff,
0xff, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0xe0, 0x01, 0xff, 0xff, 0xfc, 0x03, 0xff,
0xff, 0xff, 0xfc, 0x01, 0xff, 0xbf, 0xff, 0xff, 0x81, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x00, 0xff,
0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xe0, 0x3f,
0xff, 0xff, 0x80, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf8, 0x0f,
0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x3f, 0xfe, 0x03,
0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x01, 0xff, 0x80, 0x7c, 0x0f, 0xff, 0x01,
0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 0xe0, 0x1e, 0x07, 0xff, 0x80,
0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xf0, 0x1f, 0x01, 0xff, 0xe0,
0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xfc, 0x07, 0xc0, 0xff, 0xf0,
0xfc, 0x07, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xfc, 0x07, 0xe0, 0x7f, 0xf8,
0xf8, 0x0f, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xfc, 0x03, 0xf0, 0x3f, 0xfc,
0xf0, 0x3f, 0xff, 0x83, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xf8, 0x03, 0xf8, 0x1f, 0xfe,
0xc0, 0x7f, 0xff, 0x83, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xe0, 0x3f, 0xe0, 0x01, 0xfc, 0x0f, 0xff,
0x80, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xfc, 0x0f, 0x81, 0x01, 0xfe, 0x07, 0xff,
0x01, 0x81, 0xff, 0x03, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0x07, 0x07, 0x80, 0x3f, 0x03, 0xff,
0x03, 0x03, 0xff, 0x07, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0x80, 0x1f, 0xc0, 0x00, 0x01, 0xff,
0x07, 0x03, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xe0, 0x1f, 0xe0, 0x00, 0x00, 0xff,
0x02, 0x07, 0xfe, 0x0f, 0xff, 0xff, 0xe0, 0xf8, 0x3f, 0x80, 0x60, 0x3f, 0xff, 0x00, 0x00, 0xff,
0x00, 0x07, 0xfe, 0x0f, 0xff, 0xc7, 0xe0, 0x00, 0x3f, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0x7f,
0xe0, 0x07, 0xfe, 0x07, 0xff, 0x81, 0xf0, 0x00, 0x3f, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x40, 0x3f,
0xff, 0x07, 0xfe, 0x07, 0xff, 0x83, 0x80, 0x00, 0x1f, 0x00, 0x70, 0x7f, 0xfe, 0x00, 0x40, 0x1f,
0xff, 0x0f, 0xfe, 0x0f, 0xff, 0x00, 0x00, 0x70, 0x7f, 0xe1, 0xe0, 0x3f, 0xff, 0x81, 0xc0, 0x00,
0xff, 0x0f, 0xfe, 0x07, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0x03, 0x00,
0xff, 0x0f, 0xfc, 0x07, 0xff, 0x00, 0x78, 0x1f, 0xff, 0xff, 0x80, 0x0f, 0xff, 0xfc, 0x07, 0x80,
0xff, 0x0f, 0x00, 0x03, 0xff, 0x00, 0x7e, 0x03, 0xff, 0xfe, 0x03, 0x03, 0xff, 0xf0, 0x3e, 0x00,
0xff, 0x00, 0x00, 0x03, 0xff, 0x00, 0x3f, 0xc0, 0x7f, 0xe0, 0x00, 0x00, 0x1f, 0x00, 0xf0, 0x00,
0xff, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x1f, 0x80, 0x00, 0x07, 0x80, 0x00,
0xff, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x01, 0xff, 0xff, 0x00, 0xff, 0x00, 0x00,
0xff, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xc1, 0xfe, 0x00, 0x00,
0xf0, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xf0, 0xfe, 0x00, 0x00,
0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x0f, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xc0, 0x7e, 0x00, 0x00,
0x00, 0x70, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x0f, 0xff, 0xfc, 0x00, 0xfe, 0x00, 0x00,
0x3f, 0xe0, 0x03, 0xc0, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00,
0xff, 0xfe, 0x01, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0xc1, 0xfe, 0x00, 0x03,
0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x83, 0xff, 0x00, 0x03,
0x00, 0x00, 0x00, 0x3f, 0x00, 0x01, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xfc, 0x0f, 0xff, 0x80, 0x0f,
0x00, 0x00, 0x00, 0x1f, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x7f, 0xff, 0xe0, 0x0f,
0xff, 0xff, 0xc0, 0x03, 0xff, 0xff, 0xc0, 0x00, 0x1f, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xe0, 0x3f,
0xf0, 0xff, 0x80, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfc, 0x00, 0x7f,
0x7f, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x07,
0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xf0, 0x00, 0x00,
0x00, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
0xff, 0xff, 0x03, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc3,
0xff, 0xfd, 0xc3, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xc3,
0xff, 0xff, 0x00, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfe, 0x07,
0x07, 0xe7, 0xc0, 0x00, 0x07, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc0, 0x07,
0x00, 0x3c, 0x00, 0x00, 0x00, 0x7f, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0xfe, 0x00, 0x03,
0x00, 0x0f, 0x80, 0x00, 0x00, 0x1f, 0x80, 0x1f, 0xe0, 0x00, 0x1f, 0xe0, 0x01, 0xf8, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x00, 0x0f, 0xff, 0x80, 0x00, 0x01, 0xf0, 0x00, 0x00};
const uint8_t bitmapFlip[] = {// '323c8759de1a30fe91cbde20d63f6cbb', 128x64px
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xc0, 0x3f, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xff, 0xff, 0xff,
0xff, 0xf0, 0x0f, 0xff, 0xff, 0xf0, 0x3f, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xff, 0xff, 0xff,
0xff, 0xc0, 0x3f, 0xff, 0xff, 0x80, 0x07, 0x03, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xff,
0xff, 0x00, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x81, 0xff, 0xff, 0xfd, 0xff, 0x80, 0x3f, 0xff, 0xff,
0xfc, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff,
0xf0, 0x1f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff,
0xc0, 0x7f, 0xfc, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xff,
0x80, 0xff, 0xf0, 0x3e, 0x01, 0xff, 0x80, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff,
0x01, 0xff, 0xe0, 0x78, 0x07, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff,
0x07, 0xff, 0x80, 0xf8, 0x0f, 0xff, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff,
0x0f, 0xff, 0x03, 0xe0, 0x3f, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xff,
0x1f, 0xfe, 0x07, 0xe0, 0x3f, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x07, 0xff, 0xe0, 0x3f,
0x3f, 0xfc, 0x0f, 0xc0, 0x3f, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x03, 0xff, 0xf0, 0x1f,
0x7f, 0xf8, 0x1f, 0xc0, 0x1f, 0xff, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xfc, 0x0f,
0xff, 0xf0, 0x3f, 0x80, 0x07, 0xfc, 0x07, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xfe, 0x03,
0xff, 0xe0, 0x7f, 0x80, 0x81, 0xf0, 0x3f, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0x01,
0xff, 0xc0, 0xfc, 0x01, 0xe0, 0xe0, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xc0, 0xff, 0x81, 0x80,
0xff, 0x80, 0x00, 0x03, 0xf8, 0x01, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0xff, 0xc0, 0xc0,
0xff, 0x00, 0x00, 0x07, 0xf8, 0x07, 0xff, 0xfc, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x7f, 0xc0, 0xe0,
0xff, 0x00, 0x00, 0xff, 0xfc, 0x06, 0x01, 0xfc, 0x1f, 0x07, 0xff, 0xff, 0xf0, 0x7f, 0xe0, 0x40,
0xfe, 0x00, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0xfc, 0x00, 0x07, 0xe3, 0xff, 0xf0, 0x7f, 0xe0, 0x00,
0xfc, 0x02, 0x00, 0x7f, 0xfe, 0x00, 0x00, 0xfc, 0x00, 0x0f, 0x81, 0xff, 0xe0, 0x7f, 0xe0, 0x07,
0xf8, 0x02, 0x00, 0x7f, 0xfe, 0x0e, 0x00, 0xf8, 0x00, 0x01, 0xc1, 0xff, 0xe0, 0x7f, 0xe0, 0xff,
0x00, 0x03, 0x81, 0xff, 0xfc, 0x07, 0x87, 0xfe, 0x0e, 0x00, 0x00, 0xff, 0xf0, 0x7f, 0xf0, 0xff,
0x00, 0xc0, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xfc, 0x00, 0x00, 0xff, 0xe0, 0x7f, 0xf0, 0xff,
0x01, 0xe0, 0x3f, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xf8, 0x1e, 0x00, 0xff, 0xe0, 0x3f, 0xf0, 0xff,
0x00, 0x7c, 0x0f, 0xff, 0xc0, 0xc0, 0x7f, 0xff, 0xc0, 0x7e, 0x00, 0xff, 0xc0, 0x00, 0xf0, 0xff,
0x00, 0x0f, 0x00, 0xf8, 0x00, 0x00, 0x07, 0xfe, 0x03, 0xfc, 0x00, 0xff, 0xc0, 0x00, 0x00, 0xff,
0x00, 0x01, 0xe0, 0x00, 0x01, 0xf8, 0x00, 0x00, 0x0f, 0xf8, 0x00, 0x03, 0x00, 0x00, 0x00, 0xff,
0x00, 0x00, 0xff, 0x00, 0xff, 0xff, 0x80, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xff,
0x00, 0x00, 0x7f, 0x83, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0xff,
0x00, 0x00, 0x7f, 0x0f, 0xff, 0xff, 0xfc, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x0f,
0x00, 0x00, 0x7e, 0x03, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xf0, 0x00, 0x00, 0x01, 0xe0, 0x00, 0x00,
0x00, 0x00, 0x7f, 0x00, 0x3f, 0xff, 0xf0, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x03, 0xc0, 0x0e, 0x00,
0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x03, 0xc0, 0x07, 0xfc,
0xc0, 0x00, 0x7f, 0x83, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfc, 0x00, 0x00, 0x0f, 0x80, 0x7f, 0xff,
0xc0, 0x00, 0xff, 0xc1, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00,
0xf0, 0x01, 0xff, 0xf0, 0x3f, 0xfc, 0x03, 0xff, 0xff, 0xff, 0x80, 0x00, 0xfc, 0x00, 0x00, 0x00,
0xf0, 0x07, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfc, 0x0f, 0xf8, 0x00, 0x00, 0x00,
0xfc, 0x07, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xff,
0xfe, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0xff, 0x0f,
0xe0, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xfe,
0x00, 0x00, 0x0f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f,
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff,
0xc3, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xc0, 0xff, 0xff,
0xc3, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xc3, 0xbf, 0xff,
0xe0, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x00, 0x00, 0xff, 0xff,
0xe0, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xe0, 0x00, 0x03, 0xe7, 0xe0,
0xc0, 0x00, 0x7f, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x03, 0xf0, 0xfe, 0x00, 0x00, 0x00, 0x3c, 0x00,
0x80, 0x00, 0x1f, 0x80, 0x07, 0xf8, 0x00, 0x07, 0xf8, 0x01, 0xf8, 0x00, 0x00, 0x01, 0xf0, 0x00,
0x00, 0x00, 0x0f, 0x80, 0x00, 0x01, 0xff, 0xf0, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00};
void My_SoftwareI2C_Init(void);
void My_OLEDScreen_Init(void);
int i2c_write_bytes(uint8_t addr, const uint8_t *pdata, uint16_t size);
int main(void)
{
My_SoftwareI2C_Init(); //对软I2C初始化
My_OLEDScreen_Init(); //对OLED初始化
// //#1.打印Hello world
// OLED_SetPen(&oled,PEN_COLOR_WHITE,1); //设置白画笔
// OLED_SetBrush(&oled,PEN_COLOR_TRANSPARENT); //透明画刷
// OLED_SetCursor(&oled,24,50); //设置光标
// OLED_DrawString(&oled,"S Y N"); //只是在单片机内存中绘制出来了
//
// //#2.打印你好世界
// OLED_SetFont(&oled,&hyjk15); //设置字体
//
// int16_t x= (OLED_GetScreenWidth(&oled) - OLED_GetStrWidth(&oled,"鎴戠埍浣?))/2; //让字居中
//
// OLED_SetCursor(&oled,x,28); //设置光标
// OLED_DrawString(&oled,"鎴戠埍浣?);
//
//
// //#3.格式化打印当前时期
// OLED_SetFont(&oled,&default_font);
// OLED_SetCursor(&oled,58,64);
// OLED_Printf(&oled,"%04d/%02d/%02d",2025,3,21);
// //#4. 设置文本区域
// OLED_StartTextRegion(&oled,0,0,128,64);
// OLED_DrawString(&oled,"dont waste your time plus.\r\n");
// OLED_DrawString(&oled,"chun tian shi ta zui ai de ji jie.\r\n");
// OLED_DrawString(&oled,"m x c .\r\n");
// OLED_DrawString(&oled,"2000 7 21 .\r\n");
// //#5. 画点
// OLED_SetPen(&oled,PEN_COLOR_WHITE,3);
// OLED_SetCursor(&oled,29,32);
// OLED_DrawDot(&oled);
//
// for(uint8_t i=1;i<8;i++)
// {
// OLED_MoveCursorX(&oled,10);
// OLED_DrawDot(&oled);
// }
// //#6. 画线
// OLED_SetCursor(&oled,0,0);
// OLED_DrawLine(&oled,127,63);
//
// OLED_SetCursor(&oled,0,63);
// OLED_DrawLine(&oled,127,0);
//
// OLED_SetCursor(&oled,84,22);
// OLED_LineTo(&oled,44,22);
// OLED_LineTo(&oled,44,42);
// OLED_LineTo(&oled,84,42);
// //#7.画圆画矩形
// OLED_SetCursor(&oled,20,20);
// OLED_SetPen(&oled,PEN_COLOR_WHITE,1);
// OLED_SetBrush(&oled,BRUSH_TRANSPARENT);
// OLED_DrawRect(&oled,40,20);
//
// //圆
// OLED_SetCursor(&oled,65,30);
// OLED_DrawCircle(&oled,5);
//
// //矩形2
// OLED_SetCursor(&oled,70,20);
// OLED_SetPen(&oled,PEN_COLOR_WHITE,1);
// OLED_SetBrush(&oled,BRUSH_WHITE);
// OLED_DrawRect(&oled,40,20);
// //#8.绘制位图
// 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);
OLED_Clear(&oled);
OLED_SetCursor(&oled,0,0);
OLED_DrawBitmap(&oled,128,64,bitmapFlip);
OLED_SendBuffer(&oled);
Delay(500);
}
}
void My_SoftwareI2C_Init(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 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_InitTypeDef OLED_InitStruct;
OLED_InitStruct.i2c_write_cb=i2c_write_bytes;
OLED_Init(&oled,&OLED_InitStruct);
}