0.96inch Transparent OLED

来自Waveshare Wiki
跳转至: 导航搜索

产品简介

提供树莓派、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地址,如图:

0.96inch-Transparent-OLED-1.png

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接线图

0.96inch OLED-树莓派.jpg

开启SPI和I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi.png
然后重启树莓派:

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的引脚,如果需要移植程序,请按实际引脚连接

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接线图

0.96inch OLED-STM32.jpg

运行程序

  • 查看引脚说明或者修改引脚,找到 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固件下载
Pico MicroPython.gif
C_Blink固件下载
Pico Blink.gif
教程名3
列表3
教程名4
列表4
教程名5
列表5
教程名6
列表6
教程名7
列表7
教程名8
列表8

基础介绍

Raspberry Pi Pico的基础介绍

MicroPython系列

安装Thonny IDE

为了方便在电脑上使用MicroPython开发Pico/Pico2板,建议下载Thonny IDE

  • 下载Thonny IDE并按照步骤安装,安装包均为Windows版本,其他版本请参考Thonny官网
  • 安装完成之后,第一次要配置语言和主板环境,由于我们是为了使用Pico/Pico2,所以注意主板环境选择Raspberry Pi 选项

Pico-R3-Tonny1.png

  • 配置Micrpython环境及选择Pico/Pico2端口
    • 先将Pico/Pico2接入电脑,左键点击Thonny右下角的配置环境选项--》选择configture interpreter
    • 在弹出的窗口栏中选择MicroPython(Raspberry Pi Pico),同时选择对应的端口

Raspberry-Pi-Pico-Basic-Kit-M-2.png
Raspberry-Pi-Pico-Basic-Kit-M-3.png

烧录固件

  • 点击ok后返回到Thonny主界面,下载对应的固件库并烧录到设备中,然后点击停止按钮,在Shell窗口中即可显示当前使用到的环境
  • 注意:烧录Micropython官方提供的Pico2固件可能导致无法识别设备,请使用下方或程序包中的固件
  • Pico/Pico2在windows下载固件库方法: 按住BOOT键后连接电脑后,松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可
  • RP2040/RP2350在windows下载固件库方法: 连接电脑后,同时按下BOOT键跟RESET键,先松开RESET键再松开BOOT键,电脑会出现一个可移动磁盘,将固件库复制进去即可(用Pico/Pico2的方式也可以)

Raspberry-Pi-Pico2-Python.png

讲解视频

【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的引脚,如果需要移植程序,请按实际引脚连接

Arduino UNO连接引脚对应关系
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的引脚,如果需要移植程序,请按照实际引脚连接

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头文件,在文件中修改所需使用驱动接口的宏定义

0.96inch-Transparent-OLED-3.png

代码简析

  • 清屏函数:使用该函数,可以将整个屏幕清屏或者填充为白色,通过传入的参数进行选择;可以通过合理使用该函数来检测屏幕是否有损害或坏点。
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的引脚,如果需要一直程序,请按照实际引脚连接

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头文件,在文件中修改所需使用驱动接口的宏定义

0.96inch-Transparent-OLED-4.png

代码解析

  • -清屏函数:使用该函数,可以将整个屏幕清屏或者填充为白色,通过传入的参数进行选择;可以通过合理使用该函数来检测屏幕是否有损害或坏点;
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)

资料

提供文档、程序、数据手册等全套资料

文档

程序

软件

数据手册

应用笔记