0.96inch Transparent OLED
产品简介
提供树莓派、STM32、Pico、arduino、ESP32例程
产品参数
- 工作电压: 3.3V
- 通信接口: 4-wire SPI, I2C
- 屏幕类型: OLED
- 控制芯片: SSD1312
- 分辨率: 128*64(Pixel)
- 外形尺寸: 42.35*22MM
- 显示颜色: 白色
- 视角: >160°
功能引脚
| 功能引脚 | 描述 |
| VCC | 3.3V 电源正 |
| GND | 电源地 |
| DIN | SPI数据输入 |
| CLK | SPI时钟输入 |
| CS | 片选,低电平有效 |
| D/C | 数据/命令,低电平表示命令,高电平表示数据 |
| RST | 复位,低电平有效 |
| EN | 电源使能,默认开启 |
硬件配置
OLED模块提供两种驱动接口:分别为4-wire SPI和I2C接口,模块背面有两个可选择焊接的电阻,通过电阻的选择来选择对应的通信方式或者切换I2C地址,如图:

RPI使用教程
提供RPI(Python)库例程
硬件连接
连接树莓派的时候,选择用7PIN排线连接,请参考下方的引脚对应表格
| OLED | Raspberry Pi | |
| SPI | I2C | |
| VCC | 3.3V | 3.3V |
| GND | GND | GND |
| DIN | 19 | 3 |
| CLK | 23 | 5 |
| CS | 24 | - |
| D/C | 22 | - |
| RST | 18 | 18 |
- 四线SPI接线图
开启SPI和I2C接口
- 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择Interfacing Options -> SPI -> Yes 开启SPI接口
sudo reboot
I2C同理,进入配置界面选择Interfaceing Options -> I2C -> Yes 开启IIC接口,然后重启
安装库
Python
# 更新软件包列表
sudo apt update
sudo apt upgrade -y
# 安装GPIO和SPI库
sudo apt install python3-rpi.gpio python3-spidev -y
# 验证安装
python3 -c "import RPi.GPIO; import spidev; print('库安装成功')"
运行程序
以下命令请在RaspberryPi目录下执行,否则索引不到目录;
Python
- 进入Raspberry Pi程序目录
cd Raspberry Pi
- 运行对应通信协议的代码,程序支持SPI和I2C
sudo python3 OLED_096_SPI.py
代码简析
- 新建图像属性:新建一个图像属性,这个属性包括图像缓存的名称、宽度、高度、翻转角度、颜色
void Paint_NewImage(UBYTE *image, UWORD Width, UWORD Height, UWORD Rotate, UWORD Color) 参数: image : 图像缓存的名称,实际上是一个指向图像缓存首地址的指针; Width : 图像缓存的宽度; Height: 图像缓存的高度; Rotate:图像的翻转的角度 Color :图像的初始颜色;
- 清屏函数:使用该函数,可以将整个屏幕清屏或者填充为白色,通过传入的参数进行选择;可以通过合理使用该函数来检测屏幕是否有损害或坏点
def clear_screen(self, invert):
"""清屏(显存填充0,手册4.2.1清屏要求)"""
- 画点:在图像缓存中,在(x,y)坐标上画点
def draw_point(self, x, y, fill=1):
"""
绘制单个点
:param x: 横坐标(0~127)
:param y: 纵坐标(0~63)
:param fill: 1=点亮,0=熄灭
"""
- 画线:在图像缓存中,从(x1,y1)到(x2,y2)画线,支持任意斜率画线;
def draw_line(self, x0, y0, x1, y1, fill=1):
"""
绘制直线(Bresenham算法,支持任意角度,无锯齿)
:param x0,y0: 起点坐标
:param x1,y1: 终点坐标
:param fill: 1=实线,0=虚线(默认实线)
"""
- 画矩形:在图像缓存中,从(x1,y1)到(x2,y2)画一个矩形;
def draw_rectangle(self, x0, y0, x1, y1, fill=0):
"""
绘制矩形(面绘制)
:param x0,y0: 左上角坐标
:param x1,y1: 右下角坐标
:param fill: 0=空心,1=实心
"""
- 写英文字符串:调用字库中的字符信息,以(page,col)为左顶点,写一串英文字符,可以选择不同字体大小的字符库,以及显示方式;
def draw_string(self, x, y, text):
"""
在 (x, y) 位置绘制字符串
:param x, y: 起始坐标
:param text: 要显示的字符串(仅支持ASCII可打印字符)
"""
- 写中文字符串:调用字库中的字符信息,以(x,y)为左顶点,写一串中文字符,可以选择显示方式;
def draw_chinese(self, x, y, text, fill=1):
"""
在 (x, y) 处绘制 16x16 中文字符串
x: 起始列(0~111)
y: 起始行(0~47)
text: 字符串,如 "微雪电子"
fill: 1=点亮, 0=熄灭
"""
- bmp图片显示:调用取模后文件的数据,以(x,y)为左顶点,以(width,height)决定图片的长宽,显示该图片
def draw_image(self, x, y, image_data, width=128, height=64):
"""
在指定位置绘制图片(适配页优先格式image_data,解决乱码+仅显示一行问题)
:param x: 起始x坐标(0~127,全屏传0)
:param y: 起始y坐标(0~63,全屏传0)
:param image_data: 图片点阵数据(字节数组,页优先格式:8页×128字节=1024字节)
:param width: 图片宽度(默认128,与显存一致)
:param height: 图片高度(默认64,与显存一致)
"""
STM32使用教程
提供基于STM32F103RBT6的例程
硬件连接
我们提供的例程是基于STM32F103RBT6的,提供的连接方式也是对应的STM32F103RBT6的引脚,如果需要移植程序,请按实际引脚连接
| OLED | STM32 |
| VCC | 3.3V |
| GND | GND |
| DIN | SPI:PB9 / I2C:PB9 |
| CLK | SPI:PB8 / I2C:PB8 |
| CS | PC5 |
| D/C | PC6 |
| RES | PC8 |
- 四线硬件SPI接线图
运行程序
- 查看引脚说明或者修改引脚,找到 STM32 程序文件目录,根据所使用的模式不同,使用 STM32CubeIDE 打开 \STM32\对应通信接口\ 目录下的.ioc文件
代码简析
- 写ASCII字符:调用字库中的字符信息,以(page,col)为左顶点,写一个ASCII字符,可以选择不同字体大小的字符库,以及显示方式;
* @brief 显示单个 8×16 点阵字符 * @param page 字符左上角列坐标(0~127,需满足 x+7 < 128) * @param col 字符左上角页坐标(0~7,需满足 y+1 < 8,因16行占2页) * @param ch 要显示的ASCII字符(0x20-0x7E,超出范围显示空格) * @param font_size 字体大小 * @param invert 1=反色显示,0=正常显示 */ void oled_show_char(uint8_t page, uint8_t col, uint8_t ch, uint8_t font_size, uint8_t invert);
- 写英文字符串:调用字库中的字符信息,以(page,col)为左顶点,写一串英文字符,可以选择不同字体大小的字符库,以及显示方式;
* @brief 显示字符串 * @param page 起始页 * @param col 起始列 * @param str 要显示的字符串(ASCII 码) * @param font_size 字体大小(同 oled_show_char) * @param invert 1=反色显示,0=正常显示 */ void oled_show_string(uint8_t page, uint8_t col, uint8_t *str, uint8_t font_size, uint8_t invert);
*画点函数: /** * @brief 画点(基础功能) * @param x 横坐标(0~127,超出范围忽略) * @param y 纵坐标(0~63,超出范围忽略) * @param enable 1=点亮,0=熄灭 */ void oled_draw_point(uint8_t x, uint8_t y, uint8_t enable)
*画线函数: /** * @brief 画线(Bresenham 算法,支持任意斜率直线) * @param x1 起点横坐标 * @param y1 起点纵坐标 * @param x2 终点横坐标 * @param y2 终点纵坐标 * @param enable 1=点亮,0=熄灭 */ void oled_draw_line(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t enable)
*画圆函数: /** * @brief 画圆(Bresenham 算法,空心圆) * @param x0 圆心横坐标 * @param y0 圆心纵坐标 * @param r 半径(r > 0) * @param enable 1=点亮,0=熄灭 */ void oled_draw_circle(uint8_t x0, uint8_t y0, uint8_t r, uint8_t enable)
*画矩形函数: /** * @brief 画矩形(空心,由四条直线组成) * @param x1 左上角横坐标 * @param y1 左上角纵坐标 * @param x2 右下角横坐标(x2 > x1) * @param y2 右下角纵坐标(y2 > y1) * @param enable 1=点亮,0=熄灭 */ void oled_draw_rect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t enable)
*写中文字符串:调用字库中的字符信息,以(x,y)为左顶点,写一串中文字符,可以选择显示方式; /** * @brief 显示中文字符串 * @param x 起始x坐标 * @param y 起始y坐标 * @param str 中文字符串 * @param mode 显示模式 0-正常 1-反白 */ void oled_show_string_CN(uint8_t x, uint8_t y, const char *str, uint8_t mode)
*bmp图片显示:调用取模后文件的数据,以(x,y)为左顶点,以(width,height)决定图片的长宽,显示该图片 /** * @brief 在OLED指定位置显示BMP图片 * @param x 起始列坐标 (0-127) * @param y 起始页坐标 (0-7,每页8行) * @param width 图片宽度 (像素) * @param height 图片高度 (像素),需为8的倍数(因OLED按页存储) * @param bmp 图片数据数组(取模后的字节数组) */ void oled_show_bmp(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *bmp)
Pico使用教程
提供基于RP2350 Plus的例程
Pico快速上手
固件下载
| ||
|
基础介绍
MicroPython系列
安装Thonny IDE
为了方便在电脑上使用MicroPython开发Pico/Pico2板,建议下载Thonny IDE
- 下载Thonny IDE并按照步骤安装,安装包均为Windows版本,其他版本请参考Thonny官网
- 安装完成之后,第一次要配置语言和主板环境,由于我们是为了使用Pico/Pico2,所以注意主板环境选择Raspberry Pi 选项
- 配置Micrpython环境及选择Pico/Pico2端口
- 先将Pico/Pico2接入电脑,左键点击Thonny右下角的配置环境选项--》选择configture interpreter
- 在弹出的窗口栏中选择MicroPython(Raspberry Pi Pico),同时选择对应的端口
烧录固件
- 点击ok后返回到Thonny主界面,下载对应的固件库并烧录到设备中,然后点击停止按钮,在Shell窗口中即可显示当前使用到的环境
- 注意:烧录Micropython官方提供的Pico2固件可能导致无法识别设备,请使用下方或程序包中的固件
- Pico/Pico2在windows下载固件库方法: 按住BOOT键后连接电脑后,松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可
- RP2040/RP2350在windows下载固件库方法: 连接电脑后,同时按下BOOT键跟RESET键,先松开RESET键再松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可(用Pico/Pico2的方式也可以)
讲解视频
【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解
硬件连接
我们提供的例程是基于RP2350 Plus的,提供的连接方式也是对应的RP2350 Plus的引脚,如果需要移植程序,请按实际引脚连接
| OLED | UNO |
| VCC | 3.3V |
| GND | GND |
| DIN | SPI:GP19 / I2C:GP18 |
| CLK | SPI:GP18 / I2C:GP19 |
| CS | GP5 |
| DC | GP6 |
| RST | SPI:GP7 / I2C:GP5 |
运行程序
下载程序
- 下载程序,找到Raspberry Pi程序文件目录中,根据所使用的模式不同,打开Raspberry Pi Pico_OLED_096文件夹,选择对应.py文件打开
代码简析
- 清屏函数:使用该函数,可以将整个屏幕清屏或者填充为白色,通过传入的参数进行选择;可以通过合理使用该函数来检测屏幕是否有损害或坏点;
def clear_screen(self, invert=0):
- 画点:在图像缓存中,在(x,y)坐标上画点
def draw_point(self, x, y, fill=1):
- 画线:在图像缓存中,从(x1,y1)到(x2,y2)画线,支持任意斜率画线;
def draw_line(self, x0, y0, x1, y1, fill=1):
"""
绘制直线
:param x0/y0: 起点坐标
:param x1/y1: 终点坐标
:param fill: 1=点亮,0=熄灭
"""
- 画矩形:在图像缓存中,从(x1,y1)到(x2,y2)画一个矩形;
def draw_rectangle(self, x0, y0, x1, y1, fill=0):
"""
绘制矩形
:param x0/y0: 左上角坐标
:param x1/y1: 右下角坐标
:param fill: 0=空心,1=实心
"""
- 画圆:在图像缓存中,以(x0,y0)为圆心,画一个半径为r的圆;
def draw_circle(self, x0, y0, r, fill=0):
"""
绘制圆形
:param x0/y0: 圆心坐标
:param r: 半径
:param fill: 0=描边,1=实心
"""
- 写ASSCII字符:调用字库中的字符信息,以(page,col)为左顶点,写一个ASCII字符,可以选择不同字体大小的字符库,以及显示方式;
def draw_char(self, x, y, ch):
"""
在 (x, y) 位置绘制一个 ASCII 字符(ch 为单字符字符串或整数)
:param x: 起始列(0~127)
:param y: 起始行(0~63),字符高度为8,需保证 y+7 < 64
:param ch: 字符(如 'A')或 ASCII 码(如 65)
"""
- 写英文字符串:调用字库中的字符信息,以(page,col)为左顶点,写一串英文字符,可以选择不同字体大小的字符库,以及显示方式;
def draw_string(self, x, y, text):
"""
在 (x, y) 位置绘制字符串
:param x, y: 起始坐标
:param text: 要显示的字符串(仅支持ASCII可打印字符)
"""
- 写中文字符串:调用字库中的字符信息,以(x,y)为左顶点,写一串中文字符,可以选择显示方式;
def draw_chinese(self, x, y, text, fill=1):
"""
在 (x, y) 处绘制 16x16 中文字符串
x: 起始列(0~111)
y: 起始行(0~47)
text: 字符串,如 "微雪电子"
fill: 1=点亮, 0=熄灭
"""
- bmp图片显示:调用取模后文件的数据,以(x,y)为左顶点,以(width,height)决定图片的长宽,显示该图片
def draw_image(self, x, y, image_data, width=128, height=64):
"""
在指定位置绘制图片(适配页优先格式image_data,解决乱码+仅显示一行问题)
:param x: 起始x坐标(0~127,全屏传0)
:param y: 起始y坐标(0~63,全屏传0)
:param image_data: 图片点阵数据(字节数组,页优先格式:8页×128字节=1024字节)
:param width: 图片宽度(默认128,与显存一致)
:param height: 图片高度(默认64,与显存一致)
"""
IDF-ESP32使用教程
我们提供的例程是基于ESP32-S3的,提供的连接方式也是对应的ESP32-S3的引脚,如果需要移植程序,请按照实际引脚连接
| OLED | ESP32 |
| VCC | 3.3V |
| GND | GND |
| DIN | SPI:GPIO4 / I2C:GPIO4 |
| CLK | SPI:GPIO15 / I2C:GPIO15 |
| CS | GPIO5 |
| DC | GPIO17 |
| RST | GPIO16 |
运行程序
下载程序
- 下载程序,找到ESP32程序文件目录中打开Transparent文件(该示例程序为IDF平台的代码),在示例程序中,打开ssd1312.h头文件,在文件中修改所需使用驱动接口的宏定义
代码简析
- 清屏函数:使用该函数,可以将整个屏幕清屏或者填充为白色,通过传入的参数进行选择;可以通过合理使用该函数来检测屏幕是否有损害或坏点。
void oled_clear(uint8_t enable)
- 画点函数:在(x,y)坐标上画点
* @brief 画点(基础功能) * @param x 横坐标(0~127,超出范围忽略) * @param y 纵坐标(0~63,超出范围忽略) * @param enable 1=点亮,0=熄灭 */ void oled_draw_point(uint8_t x, uint8_t y, uint8_t enable);
- 画线函数:从(x1,y1)到(x2,y2)画线,支持任意斜率画线;
* @brief 画线 * @param x1 起点横坐标 * @param y1 起点纵坐标 * @param x2 终点横坐标 * @param y2 终点纵坐标 * @param enable 1=点亮,0=熄灭 */ void oled_draw_line(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t enable);
- 画矩形:从(x1,y1)到(x2,y2)画一个矩形;
* @brief 画矩形(空心,由四条直线组成) * @param x1 左上角横坐标 * @param y1 左上角纵坐标 * @param x2 右下角横坐标(x2 > x1) * @param y2 右下角纵坐标(y2 > y1) * @param enable 1=点亮,0=熄灭 */ void oled_draw_rect(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, uint8_t enable);
- 画圆:以(x0,y0)为圆心,画一个半径为r的圆;
* @brief 画圆(Bresenham 算法,空心圆) * @param x0 圆心横坐标 * @param y0 圆心纵坐标 * @param r 半径(r > 0) * @param enable 1=点亮,0=熄灭 */ void oled_draw_circle(uint8_t x0, uint8_t y0, uint8_t r, uint8_t enable);
- 写ASSCII字符:调用字库中的字符信息,以(page,col)为左顶点,写一个ASCII字符,可以选择不同字体大小的字符库,以及显示方式;
* @brief 显示单个 8×16 点阵字符 * @param page 字符左上角列坐标(0~127,需满足 x+7 < 128) * @param col 字符左上角页坐标(0~7,需满足 y+1 < 8,因16行占2页) * @param ch 要显示的ASCII字符(0x20-0x7E,超出范围显示空格) * @param font_size 字体大小 * @param invert 1=反色显示,0=正常显示 */ void oled_show_char(uint8_t page, uint8_t col, uint8_t ch, uint8_t font_size, uint8_t invert);
- 写英文字符串:调用字库中的字符信息,以(page,col)为左顶点,写一串英文字符,可以选择不同字体大小的字符库,以及显示方式;
* @brief 显示字符串 * @param page 起始页 * @param col 起始列 * @param str 要显示的字符串(ASCII 码) * @param font_size 字体大小(同 oled_show_char) * @param invert 1=反色显示,0=正常显示 */ void oled_show_string(uint8_t page, uint8_t col, uint8_t *str, uint8_t font_size, uint8_t invert);
- 写中文字符串:调用字库中的字符信息,以(x,y)为左顶点,写一串中文字符,可以选择显示方式;
/** * @brief 显示中文字符串 * @param x 起始x坐标 * @param y 起始y坐标 * @param str 中文字符串 * @param mode 显示模式 0-正常 1-反白 */ void oled_show_string_CN(uint8_t x, uint8_t y, const char *str, uint8_t mode)
- bmp图片显示:调用取模后文件的数据,以(x,y)为左顶点,以(width,height)决定图片的长宽,显示该图片
/** * @brief 在OLED指定位置显示BMP图片 * @param x 起始列坐标 (0-127) * @param y 起始页坐标 (0-7,每页8行) * @param width 图片宽度 (像素) * @param height 图片高度 (像素),需为8的倍数(因OLED按页存储) * @param bmp 图片数据数组(取模后的字节数组) */ void oled_show_bmp(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *bmp)
- 逐行点亮单个像素点:逐行点亮单个像素点,遍历所有像素
/** * @brief 逐行遍历并点亮所有像素点 * 从第0行到第63行,每行从第0列到第127列依次点亮像素 */ void oled_scan_row(void)
Arduino-ESP32使用教程
我们提供的例程是基于ESP32-S3的,提供的连接方式也是对应的ESP32-S3的引脚,如果需要一直程序,请按照实际引脚连接
| OLED | ESP32 |
| VCC | 3.3V |
| GND | GND |
| DIN | SPI:GPIO4 / I2C:GPIO4 |
| CLK | SPI:GPIO15 / I2C:GPIO15 |
| CS | GPIO5 |
| DC | GPIO17 |
| RST | GPIO16 |
运行程序
下载程序
- 下载程序,找到ESP32程序文件目录中打开Arduino文件夹(该示例程序为Arduino平台的代码),在Arduino文件夹中,双击 Arduino.ino 文件打开Arduino的工程,在示例程序中,打开ssd1312.h头文件,在文件中修改所需使用驱动接口的宏定义
代码解析
- -清屏函数:使用该函数,可以将整个屏幕清屏或者填充为白色,通过传入的参数进行选择;可以通过合理使用该函数来检测屏幕是否有损害或坏点;
void oledClear(uint8_t enable)
- 画点:在图像缓存中,在(x,y)坐标上画点
* @brief 画点(基础功能) * @param x 横坐标(0~127,超出范围忽略) * @param y 纵坐标(0~63,超出范围忽略) * @param enable 1=点亮,0=熄灭 */ void oledDrawPixel(uint8_t x, uint8_t y, uint8_t state) ;
- 画线:在图像缓存中,从(x1,y1)到(x2,y2)画线,支持任意斜率画线;
* @brief 画线(Bresenham 算法,支持任意斜率直线) * @param x1 起点横坐标 * @param y1 起点纵坐标 * @param x2 终点横坐标 * @param y2 终点纵坐标 * @param enable 1=点亮,0=熄灭 */ void oledDrawLine(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t state) ;
- 画矩形:在图像缓存中,从(x1,y1)到(x2,y2)画一个矩形;
* @brief 画矩形(空心,由四条直线组成) * @param x1 左上角横坐标 * @param y1 左上角纵坐标 * @param x2 右下角横坐标(x2 > x1) * @param y2 右下角纵坐标(y2 > y1) * @param enable 1=点亮,0=熄灭 */ void oledDrawRect(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t state) ;
- 画圆:在图像缓存中,以(x0,y0)为圆心,画一个半径为r的圆;
* @brief 画圆(Bresenham 算法,空心圆) * @param x0 圆心横坐标 * @param y0 圆心纵坐标 * @param r 半径(r > 0) * @param enable 1=点亮,0=熄灭 */ void oledDrawCircle(uint8_t x0, uint8_t y0, uint8_t r, uint8_t state) ;
- 写ASCII字符:调用字库中的字符信息,以(x,y)为左顶点,写一个ASCII字符,可以选择不同字体大小的字符库,以及显示方式;
* @brief 显示单个 8×16 点阵字符 * @param x 字符左上角列坐标(0~127,需满足 x+7 < 128) * @param y 字符左上角页坐标(0~7,需满足 y+1 < 8,因16行占2页) * @param c 要显示的ASCII字符(0x20-0x7E,超出范围显示空格) * @param font_size 字体大小 * @param invert 1=反色显示,0=正常显示 */ void oled_show_char(uint8_t page, uint8_t col, uint8_t ch, uint8_t font_size, uint8_t invert);
- 写英文字符串:调用字库中的字符信息,以(x,y)为左顶点,写一串英文字符,可以选择不同字体大小的字符库,以及显示方式;
* @brief 显示字符串 * @param page 起始页 * @param col 起始列 * @param str 要显示的字符串(ASCII 码) * @param font_size 字体大小(同 oled_show_char) * @param invert 1=反色显示,0=正常显示 */ void oled_show_string(uint8_t page, uint8_t col, uint8_t *str, uint8_t font_size, uint8_t invert);
- 写中文字符串:调用字库中的字符信息,以(x,y)为左顶点,写一串中文字符,可以选择显示方式;
/** * @brief 显示中文字符串 * @param x 起始x坐标 * @param y 起始y坐标 * @param str 中文字符串 * @param mode 显示模式 0-正常 1-反白 */ void oled_show_string_CN(uint8_t x, uint8_t y, const char *str, uint8_t mode)
- bmp图片显示:调用取模后文件的数据,以(x,y)为左顶点,以(width,height)决定图片的长宽,显示该图片
/** * @brief 在OLED指定位置显示BMP图片 * @param x 起始列坐标 (0-127) * @param y 起始页坐标 (0-7,每页8行) * @param width 图片宽度 (像素) * @param height 图片高度 (像素),需为8的倍数(因OLED按页存储) * @param bmp 图片数据数组(取模后的字节数组) */ void oled_show_bmp(uint8_t x, uint8_t y, uint8_t width, uint8_t height, const uint8_t *bmp)
资料
提供文档、程序、数据手册等全套资料




