树莓派Zero上Python驱动ePaper HAT无显示问题求助
树莓派Zero驱动ePaper HAT无显示问题
问题描述
在树莓派Zero上用Python驱动ePaper HAT时,程序执行后屏幕无任何显示,但控制台输出正常:
e-Paper busy
e-Paper busy release
Clear...
e-Paper busy
e-Paper busy release
Horizontal
Horizontal
e-Paper busy
e-Paper busy release
spi end
close 5V, Module enters 0 power consumption ...
程序代码如下:
import sys sys.path.append(r'lib') import epd2in7b as epdlib import time from PIL import Image, ImageDraw, ImageFont import math import traceback try: epd = epdlib.EPD() epd.init() print("Clear...") epd.Clear() w,h=epdlib.EPD_WIDTH, epdlib.EPD_HEIGHT HBlackimage = Image.new('1', (h, w), 255) HRedimage = Image.new('1', (h, w), 255) draw=ImageDraw.Draw(HBlackimage) draw.text((0,0), 'Hello World', font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 30), fill = 0) epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRedimage)) epd.sleep() except : print ('traceback.format_exc():\n%s',traceback.format_exc()) exit()
程序执行完毕后ePaper HAT无任何显示,求解决思路。
解决思路
- 核对图像尺寸与屏幕匹配:你创建图像时用了
(h, w),要确认epdlib.EPD_WIDTH和epdlib.EPD_HEIGHT的定义是否和2.7寸双色屏实际尺寸(通常264x176像素)对应,注意宽高顺序是否搞反。如果屏幕是横向布局,可能需要在调用getbuffer前对图像做旋转处理。 - 验证SPI权限与状态:树莓派Zero默认关闭SPI接口,先通过
raspi-config开启SPI;另外运行程序时需要sudo权限,普通用户无SPI设备访问权限,试试用sudo python3 your_script.py执行。 - 调整休眠前的等待时间:部分ePaper屏幕在
display后需要时间完成刷新,在epd.display(...)和epd.sleep()之间添加time.sleep(2),给屏幕足够的刷新时长。 - 测试官方示例程序:先运行驱动库自带的2.7寸双色屏示例代码,确认硬件本身无问题。如果官方示例能正常显示,再对比自己的代码找差异,比如字体路径是否有效、图像模式是否符合要求。
- 检查供电稳定性:树莓派Zero的USB供电可能不足,ePaper刷新时需要额外电流,尝试用带独立电源适配器的USB口供电,避免电压不足导致屏幕无法正常工作。
- 确认驱动库正确性:确保
lib目录下的epd2in7b.py是对应你这款屏幕的驱动文件,不同品牌的ePaper HAT驱动参数有差异,别用错了驱动库。
内容的提问来源于stack exchange,提问作者Noctyris
相关产品推荐
相关产品推荐

