MicroPython 开发ESP32应用教程 之 I2C OLED 屏驱动及中文显示

考虑到我们接下来的课程需要显示更多的信息,我们今天讲解利用i2c驱动OLED显示屏,并支持显示中文。

我们常用的0.96寸的OLED显示屏,大多是用1306驱动芯片,所以我们需要先大致了解一下framebuf 及SSD1306模块。

一、framebuf

 MicroPython 的 framebuf 模块是一个用于操作帧缓冲区(Frame Buffer)的底层库,它提供了一种直接操作像素数据的方式,常用于驱动显示屏(如 OLED、LCD 等)。帧缓冲区本质上是内存中的一块区域,存储了屏幕像素的显示数据,通过修改这些数据可以直接控制屏幕内容。

核心功能
1、直接像素操作:支持读写单个像素或批量修改像素。
2、图形绘制:提供基本图形(线条、矩形、圆形等)和文本的绘制功能。
3、颜色格式支持:支持多种颜色格式(如单色、16位RGB等),适配不同屏幕硬件。
 关键类:FrameBuffer
FrameBuffer framebuf 模块的核心类,需要手动初始化。其构造函数如下:
framebuf.FrameBuffer(buffer, width, height, format, stride=width, ...)
**参数说明**:
  - buffer: 字节数组(bytearray)或内存缓冲区,用于存储像素数据。
  - width: 屏幕宽度(像素数)。
  - height: 屏幕高度(像素数)。
  - format: 颜色格式(见下文)。
  - stride: 每行像素占用的字节数(默认为 width)。

常用方法
以下是 FrameBuffer 对象的常用方法:

| 方法                                      | 功能描述                                  
|-------------------------------------|----------------------------------------
| fill(color)                               | 用指定颜色填充整个缓冲区    
| pixel(x, y[, color])                 | 设置/获取单个像素颜色           
| hline(x, y, w, color)               | 绘制水平线                              
| vline(x, y, h, color)               | 绘制垂直线                              
| rect(x, y, w, h, color)            | 绘制矩形边框                          
| fill_rect(x, y, w, h, color)      | 绘制填充矩形                          
| line(x1, y1, x2, y2, color)    | 绘制直线                                 
| text(str, x, y, color)               | 在指定位置绘制文本(内置字体) 
| scroll(dx, dy)                       | 滚动屏幕内容(偏移量 dx, dy)
| blit(source, x, y, key)          | 将另一个帧缓冲区的数据复制到当前缓冲区

更多更详细的信息大家可以从 MicroPython网站上查询获取。

二、SSD1306

MicroPython 的 ssd1306模块是专为 SSD1306 驱动的 OLED 屏幕设计的驱动库,支持常见的 128x64 或 128x32 分辨率单色显示屏。它基于 framebuf 模块实现,提供了简化的接口控制屏幕显示内容,适用于嵌入式开发(如 ESP32、ESP8266、Ras

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远的元子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值