micropython编程爱好网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4016|回复: 6

lcd160cr — LCD160CR显示控制

[复制链接]

24

主题

24

帖子

1374

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1374
发表于 2022-1-20 09:50:27 | 显示全部楼层 |阅读模式
lcd160cr — LCD160CR显示控制

该模块提供对 MicroPython LCD160CR 显示器的控制。

可通过以下链接获得更多资源:

LCD160CR级

LCD160CR 类为显示器提供了一个接口。创建该类的一个实例,并使用其方法绘制到 LCD 并获取触摸面板的状态。

例如:

  1. import lcd160cr
    1 J) N9 F' d5 e$ p3 ]! y$ B

  2. 7 i# |+ M% j1 {) T0 g" e6 M
  3. lcd = lcd160cr.LCD160CR('X')
    * ]3 X) r5 H) Z& J; w
  4. lcd.set_orient(lcd160cr.PORTRAIT)
    * Q1 u: \/ K& T$ x+ S# v+ ^
  5. lcd.set_pos(0, 0)2 @, S" S, V+ `7 ]7 j( H$ U
  6. lcd.set_text_color(lcd.rgb(255, 0, 0), lcd.rgb(0, 0, 0))
    ) `+ J: v: b0 I
  7. lcd.set_font(1)
    8 r1 ?! K+ ^! Y1 X4 l
  8. lcd.write('Hello MicroPython!')) D3 T9 R9 R. e# p% Q
  9. print('touch:', lcd.get_touch())
复制代码
3 e. k; k0 t# J, z2 |

9 o: H2 P  [- [" l$ X
7 r8 H) T# M+ F! b  \# \  u

# i) L, l: g5 W0 f0 l. n' X构造函数classlcd160cr.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 地址。


    ; P  d$ ?9 J0 c$ k. H$ [

9 R  L, v; K) N- v4 S1 [

必须指定有效的连接或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")

    * [( Y7 {. |9 ]& l: \! m
2 g9 ?* }4 G. T8 W) P' L* u

有关 如何将显示器连接到 pyboard 的信息,请参阅此图像 f。


/ n# x* y8 K; H9 ~" q  Z  \静态方法staticLCD160CR.rgb(r, g, b)

返回表示给定 rgb 颜色值的 16 位整数。16 位值可用于设置字体颜色(请参阅 LCD160CR.set_text_color())笔颜色(请参阅 LCD160CR.set_pen())并绘制单个像素。

LCD160CR.clip_line(data, w, h):

剪辑给定的行数据。这是供内部使用的。


7 R7 Q; t+ b* |! b; b/ k% o实例成员

以下实例成员可公开访问。

LCD160CR.wLCD160CR.h

显示的宽度和高度,分别以像素为单位。这些成员在调用时更新LCD160CR.set_orient(),应被视为只读。

) ]! ?1 u9 }. O
设置命令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 地址。

# _. E. R9 _  _7 @0 V
像素访问方法

以下方法操作显示器上的单个像素。

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)

从给定的缓冲区加载整个屏幕。


) U  K2 H% M! z" v8 d绘图文本

要绘制文本,先设置位置、颜色和字体,然后使用它 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,如果文本移动到下一行,显示将执行软滚动。


    , O+ F6 C/ j# y2 Y# U* I% P2 w

% A1 g% Y, S" K( v* a) u, _% [
LCD160CR.write(s)

使用当前位置、颜色和字体将文本写入显示器。随着文本的写入,位置会自动增加。显示器支持基本的 VT100 控制代码,例如换行符和退格符。


8 A- _  ~) t+ B4 c# M% C, ~: H2 Y绘制原始形状

原始绘图命令使用由该 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.rect_interior(x, y, w, h)

使用轮廓的笔线颜色和内部的笔填充颜色在给定的位置和大小绘制一个矩形。该rect 方法绘制轮廓和内部,而其他方法仅绘制其中一个。

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()但在点之间画线。


' o2 j% q" X. n9 d( j9 @触摸屏方法LCD160CR.touch_config(calib=False, save=False, irq=None)

配置触控面板:

  • 如果calib是, True 则调用将触发电阻式触摸传感器的触摸校准。这需要用户触摸屏幕的各个部分。

  • 如果保存, True 则触摸参数将保存到 NVRAM 以在复位/上电期间保持不变。

  • 如果irq是,True则显示器将配置为在检测到触摸力时将 IRQ 线拉低。如果irq是,False则禁用此功能。如果irq是None (默认值),则不会对此设置进行更改。


    # w7 z3 ?3 x1 V) p; R2 S" l
% t/ j; Q& u( P/ k* \2 C' T! t  N
LCD160CR.is_touched()

返回一个布尔值:True如果屏幕上当前有触摸力, False 否则。

LCD160CR.get_touch()

返回一个三元组:(active, x, y)。如果屏幕上当前有触摸力,则active为 1,否则为 0。x和y值表示当前或最近触摸的位置。

9 q. C5 ~* c- R# o' d! {5 A
高级命令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是文本或图案前景的额外颜色。

    # @$ C" {% k# \2 w# `* v
) v; ]* Q: W6 ?0 o) Z
LCD160CR.set_scroll_win_param(win, param, value)

设置滚动窗口区域的单个参数:

  • win是窗口 ID,0..8。

  • param是要配置的参数号,0..7,对应set_scroll_win 方法中的参数。

  • value是要设置的值。


    4 L; ~- t* p1 u

( i1 Q6 A5 B* z- X
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()

重置显示。

1 I  e+ M: p4 W- D0 ?. s3 {4 h
常数lcd160cr.PORTRAITlcd160cr.LANDSCAPElcd160cr.PORTRAIT_UPSIDEDOWNlcd160cr.LANDSCAPE_UPSIDEDOWN

显示的方向,由 使用LCD160CR.set_orient()

lcd160cr.STARTUP_DECO_NONElcd160cr.STARTUP_DECO_MLOGOlcd160cr.STARTUP_DECO_INFO

启动装饰的类型,可以组合在一起,由 LCD160CR.set_startup_deco().

; }+ G3 S* ?# U* F; h+ E

" f- e, i4 {6 ]! B0 ~
回复

使用道具 举报

0

主题

98

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2022-1-25 17:44:00 | 显示全部楼层

-

It is a pity, that now I can not express - I am late for a meeting. I will return - I will necessarily express the opinion on this question.
回复

使用道具 举报

0

主题

6

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2022-2-5 05:10:28 | 显示全部楼层

-

what phrase..., an excellent idea
BLR Akademie- Erste Hilfe Kurs München Hauptbahnhof, Dachauer Strasse 11,
回复

使用道具 举报

0

主题

98

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2022-2-7 21:56:11 | 显示全部楼层

-

I consider, that you are not right. I am assured. I suggest it to discuss.
回复

使用道具 举报

0

主题

98

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2022-3-15 14:50:34 | 显示全部楼层

-

I think, that you commit an error. I can defend the position. Write to me in PM, we will talk.
回复

使用道具 举报

0

主题

1

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-4-5 22:49:42 | 显示全部楼层

-

Matchless topic, it is interesting to me))))
[url=https://proxyspace.seo-hunter.com]бесплатные мобильные
回复

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-4-22 20:57:40 | 显示全部楼层

-

Things are going swimmingly.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|micropython编程爱好网 ( 粤ICP备14010847号-3 ) microPython技术交流 microPython技术交流2

粤公网安备 44030702001224号

GMT+8, 2022-5-16 17:00 , Processed in 0.202800 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表