电子说
在电子设备的设计领域,电子墨水屏以其独特的低功耗、高对比度等特性,在众多显示技术中脱颖而出。今天,我们就来深入探讨微雪电子开发的 4.3 英寸电子墨水屏模块,看看它有哪些特点、如何使用以及背后的串口通信协议。
文件下载:4.3inch e-Paper UART Module.pdf
4.3 英寸电子墨水屏模块可谓是电子工程师手中的得力工具,它屏蔽了电子墨水屏底层复杂的细节,通过串口就能实现丰富的显示功能,涵盖几何图形绘制、文字显示以及图片展示,极大地释放了我们的创造力。其具备的特点更是值得关注:
系统上电后,会自动执行一次刷屏操作,将屏幕刷新为白色。同时,状态指示灯会根据外部 TF 卡的情况给出不同的指示:如果没有外部 TF 卡,状态指示灯会闪烁 3 次并进入常亮;如果有外部 TF 卡,状态指示灯直接进入常亮。
系统上电后默认从内部 NandFlash 读取字库和图片信息。使用外部 TF 卡时,必须将其格式化为 FAT32 文件系统,并预先存入微雪提供的字库和要显示的图片文件;使用内部 NandFlash 时,则需要按照后续步骤将字库和图片文件导入。
正常工作时指示灯常亮,当将系统设置为睡眠状态时,指示灯熄灭。此时,需要外部单片机向 WAKE_UP 引脚产生一个上升脉冲来唤醒系统,唤醒后指示灯恢复常亮。
要确保图片尺寸小于 800x600,然后使用 Windows 系统自带的画图工具打开需要转换的图片,另存为 bmp 格式(保存类型选择 24 位位图)或者另存为.jpg 格式。若.jpg 文件无法正常解码,可使用 Windows 系统自带的画图工具打开并重新保存,然后重新解码。
| 准备一个 USB 转串口模块,以 CP2102 USB UART Board(mini) 为例,使用跳线帽配置其 VCCIO 电压为 5V,按照以下连线信息进行连接: | CP2102 USB UART Board | 4.3 英寸电子墨水屏 |
|---|---|---|
| VCCIO | 红色 | |
| GND | 黑色 | |
| RXD | 白色 | |
| TXD | 绿色 |
用 USB 线将串口模块与电脑连接,此时墨水屏上电,指示灯点亮。
将软件解压到安装目录,双击“install.bat”,弹出相应对话框即说明软件安装成功。双击 EPSCOMM.exe 即可打开软件,查看设备管理器并设置对应的串口号,打开串口,单击“握手”按钮,模块返回“OK”,则表示通信正常。
需要注意的是,只需单击一次,单击的同时要观察指示灯,如果闪烁,说明已经开始导入,等待导入结束即可。出厂时默认已经导入字库文件,所以一般情况无需再重复载入字库,只需载入自定义的图片文件。而且字库或者图片的导入不受当前存储区设置的影响,无论存储区设置成 Nand 或者 Micro SD 卡,文件导入方向均为 Micro SD 卡到 Nand Flash。
| 显示图形:绘制图形功能需要输入相应的参数,如下表所示: | 图形类型 | 坐标 (X1, Y1) | 坐标 (X2,Y2) | 坐标 (X3, Y3) | 半径 R |
|---|---|---|---|---|---|
| 画点 | ● | ||||
| 画线 | ● | ● | |||
| 画矩形 | ● | ● | |||
| 填充矩形 | ● | ● | |||
| 画圆 | ● | ● | |||
| 画填充圆 | ● | ● | |||
| 画三角形 | ● | ● | ● | ||
| 画填充三角形 | ● | ● | ● |
每个命令执行完成后都会返回相应的结果,一般都返回“OK”。每次画点、画线、显示字符、显示图片等操作后,都必须点击一次“刷新”才能将内容更新到屏幕上。由于图片数据比较大,所以点击“显示图片”后需要等待一段时间才能返回结果,然后再点击一次“刷新”才能将图片显示在屏幕上。
| 以微雪 Arduino UNO PLUS 开发板为例,具体连线如下: | Arduino UNO PLUS | 4.3 英寸电子墨水屏 |
|---|---|---|
| 5V | 红色 | |
| GND | 黑色 | |
| RX/D0 | 白色 | |
| TX/D1 | 绿色 | |
| D2 | 黄色 | |
| 复位引脚,可选择不接 | 蓝色 |
打开例程提供的 Arduino 程序,编译并下载。在下载程序的时候应拔掉白色线。
| 以微雪 XNUCLEO - F103RB 开发板为例,连线信息如下: | XNUCLEO - F103RB | 4.3 英寸电子墨水屏 |
|---|---|---|
| 5V | 红色 | |
| GND | 黑色 | |
| RX/D0 | 白色 | |
| TX/D1 | 绿色 | |
| D2 | 黄色 | |
| 复位引脚,可选择不接 | 蓝色 |
打开例程提供的 XNUCLEO - F103RB 程序,编译并下载。需要将 XNUCLEO - F103RB 开发板上面的 JP4 接口,用跳线帽配置为 A 和 B 相连。
| 以微雪 Open103Z 开发板为例,连线如下: | Open103Z | 4.3 英寸电子墨水屏 |
|---|---|---|
| 5V | 红色 | |
| GND | 黑色 | |
| PA10 | 白色 | |
| PA9 | 绿色 | |
| PA11 | 黄色 | |
| 复位引脚,可选择不接 | 蓝色 |
打开例程提供的 Open103Z 程序,编译并下载。
该墨水屏模块采用异步、全双工串口(UART)通信,可自定义波特率大小。
| 指令 | 帧头 ( 1 字节) | 帧长度 [1] ( 2 字节) | 指令类型 ( 1 字节) | 参数或数据 ( 0 - 1024 字节) | 帧尾 (固定 4 字节) | 校验 ( 1 字节) [2] |
|---|---|---|---|---|---|---|
| 含义 (说明) | 0xA5 | 0xXX XX | 0xXX | 0xXX… | 0xCC 33 C3 3C | 0xXX |
[1] 帧长度从帧头开始计算,一直到校验。 [2] 校验方法为帧头到帧尾所有字节依次进行异或操作,最终结果作为校验字节。
采用网络字节序,高字节在前,低字节在后。例如传输一个参数 0x1234,先发送 0x12,后发送 0x34。
本墨水屏显示终端支持 4 阶灰度显示,每个像素点采用 2bits 来表示:
| 功能类别 | 帧长度 | 指令 | 指令参数 | 说明 |
|---|---|---|---|---|
| 系统控制 | 0x0009 | 0x00 | 无 | 握手指令,模块准备好,返回“OK” |
| 系统控制 | 0x000D | 0x01 | Dword:设置波特率值 | 设置串口通信波特率 |
| 系统控制 | 0x0009 | 0x02 | 无 | 模块返回当前波特率值,ASCII 码格式 |
| 系统控制 | 0x0009 | 0x06 | 无 | 返回当前使用的存储区(0:NandFlash;1:MicroSD) |
| 系统控制 | 0x000A | 0x07 | Byte:设置存储区 | 设置存储区(0x00:NandFlash;0x01:MicroSD) |
| 系统控制 | 0x0009 | 0x08 | 无 | 系统睡眠 |
| 系统控制 | 0x0009 | 0x0A | 无 | 立即刷新命令 |
| 系统控制 | 0x0009 | 0x0C | 无 | 返回当前的屏幕方向(0x00:正常;0x01:90°旋转;0x02:180°旋转;0x03:270°旋转) |
| 系统控制 | 0x000A | 0x0D | Byte:设置显示方向 | 设置显示方向(0x00:正常;0x01:90°旋转;0x02:180°旋转;0x03:270°旋转) |
| 系统控制 | 0x0009 | 0x0E | 无 | 载入字库:48MB |
| 系统控制 | 0x0009 | 0x0F | 无 | 载入图片:80MB |
| 显示参数配置 | 0x000B | 0x10 | Byte0:前景色;Byte1:背景色 | 设置绘图颜色 |
| 显示参数配置 | 0x0009 | 0x11 | 无 | 返回当前绘图颜色 |
| 显示参数配置 | 0x0009 | 0x1C | 无 | 读英文字号(1:32 点阵;2:48 点阵;3:64 点阵) |
| 显示参数配置 | 0x0009 | 0x1D | 无 | 读中文字号(1:32 点阵;2:48 点阵;3:64 点阵) |
| 显示参数配置 | 0x000A | 0x1E | Byte0:英文字号 | 设置英文字号(0x01:32 点阵;0x02:48 点阵;0x03:64 点阵) |
| 显示参数配置 | 0x000A | 0x1F | Byte0:中文字号 | 设置中文字号(0x01:32 点阵;0x02:48 点阵;0x03:64 点阵) |
| 基本绘图 | 0x000D | 0x20 | Short0:x 坐标;Short1:y 坐标 | 在指定坐标点显示一个像素,默认前景色 |
| 基本绘图 | 0x0011 | 0x22 | Short0:x0 坐标;Short1:y0 坐标;Short2:x1 坐标;Short3:y1 坐标 | 画直线 |
| 基本绘图 | 0x0011 | 0x24 | Short0:x0 坐标;Short1:y0 坐标;Short2:x1 坐标;Short3:y1 坐标 | 填充一个矩形区 |
| 基本绘图 | 0x0011 | 0x25 | Short0:x0 坐标;Short1:y0 坐标;Short2:x1 坐标;Short3:y1 坐标 | 画一个矩形 |
| 基本绘图 | 0x000F | 0x26 | Short0:x0 坐标;Short1:y0 坐标;Short2:r 半径 | 画圆 |
| 基本绘图 | 0x000F | 0x27 | Short0:x0 坐标;Short1:y0 坐标;Short2:r 半径 | 填充圆 |
| 基本绘图 | 0x0015 | 0x29 | Short0:x0 坐标;Short1:y0 坐标;Short2:x1 坐标;Short3:y1 坐标;Short4:x2 坐标;Short5:y2 坐标 | 填充三角形 |
| 基本绘图 | 0x0009 | 0x2E | 无 | 用背景色清屏 |
| 文字显示 | 0x0D + string length | 0x30 | Short0:x 坐标;Short1:y 坐标;String:字符串 | 支持中英混合显示,字符串最大长度 = 1024 - 4 |
| 图片显示 | 0x0D + string length | 0x70 | Short0:x0 坐标;Short1:y0 坐标;String:位图文件名 | 支持位图文件格式:.BMP、.JPG(仅支持位图) |
这里详细介绍了各个指令的功能、示例以及说明,涵盖系统控制、显示参数配置、基本绘图、文字显示、图片显示等多个方面。例如握手指令(0x00)用于判断系统是否就绪;设置波特率(0x01)可根据需求调整通信波特率等。大家在实际使用时,可根据具体需求参考相应指令进行操作。
全部0条评论
快来发表一下你的评论吧 !