lcd160cr
— LCD160CR显示控制¶
该模块提供对 MicroPython LCD160CR 显示器的控制。
可通过以下链接获得更多资源:
LCD160CRv1.0 参考手册 (100KiB PDF)
LCD160CRv1.0 原理图 (1.6MiB PDF)
LCD160CR级¶
LCD160CR 类为显示器提供了一个接口。创建该类的一个实例,并使用其方法绘制到 LCD 并获取触摸面板的状态。
例如:
import lcd160cr
lcd = lcd160cr.LCD160CR('X')
lcd.set_orient(lcd160cr.PORTRAIT)
lcd.set_pos(0, 0)
lcd.set_text_color(lcd.rgb(255, 0, 0), lcd.rgb(0, 0, 0))
lcd.set_font(1)
lcd.write('Hello MicroPython!')
print('touch:', lcd.get_touch())
构造函数¶
-
class
lcd160cr.
LCD160CR
(connect=None, *, pwr=None, i2c=None, spi=None, i2c_addr=98)¶ 构造一个 LCD160CR 对象。参数是:
connect是一个字符串,指定 LCD 显示器与电路板的物理连接;有效值为“X”、“Y”、“XY”、“YX”。当显示器在 X-skin 位置连接到 pyboard 时使用“X”,在 Y-skin 位置连接时使用“Y”。当显示器连接到pyboard的右侧或左侧时,分别使用“XY”和“YX”。
pwr 是连接到 LCD 电源/启用引脚的 Pin 对象。
i2c是连接到 LCD 的 I2C 接口的 I2C 对象。
spi是连接到 LCD 的 SPI 接口的 SPI 对象。
i2c_addr 是显示器的 I2C 地址。
必须指定有效的连接或pwr、i2c和spi 的全部。如果给出了有效的connect,则将根据connect的值创建未作为参数传递(即它们是)的任何pwr、i2c或spi。如果需要,这允许覆盖显示的默认接口。
None
默认值为:
“X”用于 X-skin 并使用:
pwr=Pin("X4")
,i2c=I2C("X")
,spi=SPI("X")
Y”代表 Y 皮肤,使用
pwr=Pin("Y4")
,i2c=I2C("Y")
,spi=SPI("Y")
“XY”用于右侧并使用:
pwr=Pin("X4")
,i2c=I2C("Y")
,spi=SPI("X")
“YX”用于左侧并使用:
pwr=Pin("Y4")
,i2c=I2C("X")
,spi=SPI("Y")
有关 如何将显示器连接到 pyboard 的信息,请参阅此图像 f。
静态方法¶
-
static
LCD160CR.
rgb
(r, g, b)¶ 返回表示给定 rgb 颜色值的 16 位整数。16 位值可用于设置字体颜色(请参阅
LCD160CR.set_text_color()
)笔颜色(请参阅LCD160CR.set_pen()
)并绘制单个像素。
-
LCD160CR.clip_line(data, w, h):
剪辑给定的行数据。这是供内部使用的。
实例成员¶
以下实例成员可公开访问。
-
LCD160CR.
w
¶
-
LCD160CR.
h
¶ 显示的宽度和高度,分别以像素为单位。这些成员在调用时更新
LCD160CR.set_orient()
,应被视为只读。
设置命令¶
-
LCD160CR.
set_power
(on)¶ 接通显示或关闭,这取决于给定的值上:0或
False
将关闭显示,和1或True
将其打开。
-
LCD160CR.
set_orient
(orient)¶ 设置显示器的方向。在东方参数可以是一个
PORTRAIT
,LANDSCAPE
,PORTRAIT_UPSIDEDOWN
,LANDSCAPE_UPSIDEDOWN
.
-
LCD160CR.
set_brightness
(value)¶ 设置显示屏的亮度,介于 0 和 31 之间。
-
LCD160CR.
set_i2c_addr
(addr)¶ 设置显示器的 I2C 地址。该地址值必须具有低2位被清除。
-
LCD160CR.
set_uart_baudrate
(baudrate)¶ 设置UART接口的波特率。
-
LCD160CR.
set_startup_deco
(value)¶ 设置显示器的启动装饰。所述值参数可以是逻辑或的
STARTUP_DECO_NONE
,STARTUP_DECO_MLOGO
,STARTUP_DECO_INFO
.
-
LCD160CR.
save_to_flash
()¶ 将以下参数保存到闪存中,以便它们在重启和上电时保持不变:初始装饰、方向、亮度、UART 波特率、I2C 地址。
像素访问方法¶
以下方法操作显示器上的单个像素。
-
LCD160CR.
set_pixel
(x, y, c)¶ 将指定像素设置为给定颜色。颜色应该是一个 16 位整数,可以由
LCD160CR.rgb()
.
-
LCD160CR.
get_pixel
(x, y)¶ 获取指定像素的 16 位值。
-
LCD160CR.
get_line
(x, y, buf)¶ 将一行像素放入给定缓冲区的低级方法。要读取n 个像素,buf 的长度应为2*n+1个字节。第一个字节是一个虚拟字节,应该被忽略,后续字节表示从坐标(x, y)开始的行中的像素。
-
LCD160CR.
screen_dump
(buf, x=0, y=0, w=None, h=None)¶ 将屏幕内容转储到给定的缓冲区。参数x和y 指定起始坐标,w和h指定区域的大小。如果w 或h是,
None
则它们将采用最大值,由屏幕大小减去给定的x和y值设置。 buf应该足够大以容纳2*w*h
字节。如果它更小,那么只会存储初始水平线。
-
LCD160CR.
screen_load
(buf)¶ 从给定的缓冲区加载整个屏幕。
绘图文本¶
要绘制文本,先设置位置、颜色和字体,然后使用它
LCD160CR.write
来绘制文本。
-
LCD160CR.
set_pos
(x, y)¶ 使用 设置文本输出的位置
LCD160CR.write()
。位置是文本的左上角。
-
LCD160CR.
set_text_color
(fg, bg)¶ 设置文本的前景色和背景色。
-
LCD160CR.
set_font
(font, scale=0, bold=0, trans=0, scroll=0)¶ 设置文本的字体。后续调用
write
将使用新配置的字体。参数是:font是要使用的字体系列,有效值为 0、1、2、3。
scale是每个字符像素的缩放值,其中像素绘制为边长等于scale + 1的正方形。该值可以在 0 到 63 之间。
粗体控制覆盖每个字符像素的像素数,产生粗体效果。粗体的低2位是水平方向要透支的像素数,接下来的2位是垂直方向。例如,粗体值 5 将在水平和垂直方向上过度绘制 1 个像素。
trans可以是 0 或 1,如果设置为 1,字符将使用透明背景绘制。
scroll 可以是 0 或 1,如果设置为 1,如果文本移动到下一行,显示将执行软滚动。
-
LCD160CR.
write
(s)¶ 使用当前位置、颜色和字体将文本写入显示器。随着文本的写入,位置会自动增加。显示器支持基本的 VT100 控制代码,例如换行符和退格符。
绘制原始形状¶
原始绘图命令使用由该
set_pen
方法设置的前景色和背景色 。
-
LCD160CR.
set_pen
(line, fill)¶ 设置原始形状的线条和填充颜色。
-
LCD160CR.
erase
()¶ 将整个显示屏擦除为笔填充颜色。
-
LCD160CR.
dot
(x, y)¶ 使用笔线颜色在给定位置绘制单个像素。
-
LCD160CR.
rect
(x, y, w, h)¶
-
LCD160CR.
rect_outline
(x, y, w, h)¶
-
LCD160CR.
line
(x1, y1, x2, y2)¶ 使用笔线颜色在给定坐标之间绘制一条线。
-
LCD160CR.
dot_no_clip
(x, y)¶
-
LCD160CR.
rect_no_clip
(x, y, w, h)¶
-
LCD160CR.
rect_outline_no_clip
(x, y, w, h)¶
-
LCD160CR.
rect_interior_no_clip
(x, y, w, h)¶
-
LCD160CR.
line_no_clip
(x1, y1, x2, y2)¶ 这些方法同上,但不对输入坐标做任何裁剪。它们比剪辑版本更快,并且可以在您知道坐标在显示范围内时使用。
-
LCD160CR.
poly_dot
(data)¶ 使用笔线颜色绘制一系列点。该数据应该是字节的缓冲器,每个连续的一对相对应的坐标对(X,Y)的字节。
-
LCD160CR.
poly_line
(data)¶ 类似于
LCD160CR.poly_dot()
但在点之间画线。
触摸屏方法¶
-
LCD160CR.
touch_config
(calib=False, save=False, irq=None)¶ 配置触控面板:
如果calib是,
True
则调用将触发电阻式触摸传感器的触摸校准。这需要用户触摸屏幕的各个部分。如果保存,
True
则触摸参数将保存到 NVRAM 以在复位/上电期间保持不变。如果irq是,
True
则显示器将配置为在检测到触摸力时将 IRQ 线拉低。如果irq是,False
则禁用此功能。如果irq是None
(默认值),则不会对此设置进行更改。
-
LCD160CR.
is_touched
()¶ 返回一个布尔值:
True
如果屏幕上当前有触摸力,False
否则。
-
LCD160CR.
get_touch
()¶ 返回一个三元组:(active, x, y)。如果屏幕上当前有触摸力,则active为 1,否则为 0。x和y值表示当前或最近触摸的位置。
高级命令¶
-
LCD160CR.
set_spi_win
(x, y, w, h)¶ 设置写入 SPI 数据的窗口。
-
LCD160CR.
fast_spi
(flush=True)¶ 使显示器准备好接受 SPI 总线上的 RGB 像素数据,重置第一个字节的位置以转到由 设置的窗口的左上角
LCD160CR.set_spi_win()
。该方法返回一个可用于写入像素数据的 SPI 对象。像素应以 5-6-5 格式作为 16 位 RGB 值发送。目标计数器将随着数据的发送而增加,并且数据可以以任意大小的块发送。一旦目标计数器到达由
LCD160CR.set_spi_win()
它指定的窗口的末尾, 它将环绕到该窗口的左上角。
-
LCD160CR.
show_framebuf
(buf)¶ 在显示器上显示给定的缓冲区。 buf应该是一个包含像素的 16 位 RGB 值的字节数组,它们将被写入由 指定的区域
LCD160CR.set_spi_win()
,从左上角开始。所述 framebuf模块可被用于构建帧缓冲器并提供绘图图元。与直接在屏幕上绘制相比,使用帧缓冲区将提高动画的性能。
-
LCD160CR.
set_scroll
(on)¶ 打开或关闭滚动。这全局控制是否有任何窗口区域将滚动。
-
LCD160CR.
set_scroll_win
(win, x=- 1, y=0, w=0, h=0, vec=0, pat=0, fill=2016, color=0)¶ 配置滚动窗口区域:
win是要配置的窗口 ID。有 0..7 个标准窗口供通用使用。窗口 8 是文本滚动窗口(股票代码)。
x, y, w, h指定窗口在显示中的位置。
vec 指定滚动的方向和速度:它是形式的 16 位值
0bF.ddSSSSSSSSSSSS
。 dd为 0, 1, 2, 3 表示 +x, +y, -x, -y 滚动。F设置速度格式,0 表示窗口每帧移动S % 256 个像素,1 表示窗口每S帧移动 1 个像素。pat是一个 16 位的背景图案掩码。
fill是填充颜色。
color是文本或图案前景的额外颜色。
-
LCD160CR.
set_scroll_win_param
(win, param, value)¶ 设置滚动窗口区域的单个参数:
win是窗口 ID,0..8。
param是要配置的参数号,0..7,对应
set_scroll_win
方法中的参数。value是要设置的值。
-
LCD160CR.
set_scroll_buf
(s)¶ 设置窗口8滚动的字符串。参数s必须是长度小于等于32的字符串。
-
LCD160CR.
jpeg
(buf)¶ 显示 JPEG。 buf应包含整个 JPEG 数据。JPEG 数据不应包含 EXIF 信息。支持以下编码:基线 DCT、霍夫曼编码、每个样本 8 位、3 个颜色分量、YCbCr4:2:2。JPEG 的原点由 设置
LCD160CR.set_pos()
。
-
LCD160CR.
jpeg_start
(total_len)¶
-
LCD160CR.
jpeg_data
(buf)¶ 显示一个 JPEG,其中的数据分布在多个缓冲区中。必须有一个调用
jpeg_start
始,指定 JPEG 中的总字节数。然后必须使用对jpeg_data
命令的一次或多次调用将这一字节数传输到显示器。
-
LCD160CR.
feed_wdt
()¶ 第一次调用此方法将启动显示器的内部看门狗定时器。后续调用将喂食看门狗。超时时间大约为 30 秒。
-
LCD160CR.
reset
()¶ 重置显示。
常数¶
-
lcd160cr.
PORTRAIT
¶ -
lcd160cr.
LANDSCAPE
¶ -
lcd160cr.
PORTRAIT_UPSIDEDOWN
¶ -
lcd160cr.
LANDSCAPE_UPSIDEDOWN
¶ 显示的方向,由 使用
LCD160CR.set_orient()
。
-
lcd160cr.
STARTUP_DECO_NONE
¶ -
lcd160cr.
STARTUP_DECO_MLOGO
¶ -
lcd160cr.
STARTUP_DECO_INFO
¶ 启动装饰的类型,可以组合在一起,由
LCD160CR.set_startup_deco()
.