【雕爷学编程】MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏
配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240)
ST7789驱动器芯片2.4寸LCD屏(24P 320X240)
主要参数
1. 模块名称:液晶显示模块
2. 型号:KD024C-4
3. 同类型型号:
4. 兼容型号:
5. 显示模式:TFT
6. 显示色彩:65/262K
7. 分辨率: 240*320
8. 点距:0.153 (H) x 0.153 (V)
9. 视角:12:00
10. 控制IC:ST7789V
11. 显示类型:全透型,常白
12. 外形尺寸:42.72*60.26*2.6mm
13. 可视面积:38.32*50.56 mm
14. 点阵区面积:36.72*48.96mm
15. 亮度:300cd/m2
16. 对比度:500
17. 接口类型: 8/9/16/18位8080并口
16/18位RGB接口
3/4线SPI接口
18. 引脚数:24
19. 引脚距离:0.5mm
20. 连接类型: FPC插接型
21. 工作电压:3.3V
22. 背光灯颜色及类型: 白色LED背光
23. 背光电路:4 LED 并联, 共阳
If=80mA, Vf =3.2V
24. 使用寿命:100000h
25. 工作温度:-20----70°C
26. 储存温度:-30----80°C
27. 质量体系认证:ISO9001:2008
28. 产品认证:RoHS
#MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏
#测试程序之一:显示英文
1 2 3 4 5 6 7 8 9 10 11 | #MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏 #测试程序之一:显示英文 import lcd lcd.init() lcd.draw_string( 100 , 100 , "hello MicroPython!" , lcd.RED, lcd.BLACK) |
lcd 屏幕显示驱动
lcd.display(image, roi=Auto)
在液晶屏上显示一张 image(GRAYSCALE或RGB565)。
roi 是一个感兴趣区域的矩形元组(x, y, w, h)。若未指定,即为图像矩形
若 roi 宽度小于lcd宽度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)。
若 roi 宽度大于lcd宽度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)。
若 roi 高度小于lcd高度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)。
若 roi 高度大于lcd高度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)。
roi 是键值参数,必须在函数调用中通过写入 roi= 来显式地调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏 #测试程序之二:LCD屏显示"hello maixpy" import lcd, time import image bg = ( 236 , 36 , 36 ) lcd.init(freq = 15000000 ) lcd.direction(lcd.YX_RLDU) lcd.clear(lcd.RED) time.sleep( 1 ) lcd.draw_string( 120 , 120 , "hello maixpy" , lcd.WHITE, lcd.RED) time.sleep( 2 ) img = image.Image() img.draw_string( 60 , 100 , "hello maixpy" , scale = 2 ) img.draw_rectangle(( 120 , 120 , 30 , 30 )) lcd.display(img) |
lcd 屏幕显示驱动函数 1. lcd.init(type=1, freq=15000000, color=lcd.BLACK) 初始化 LCD 屏幕显示 参数 type: LCD 的类型(保留给未来使用): 0: None 1: lcd shield(默认值) type 是键值参数,必须在函数调用中通过写入 type= 来显式地调用 freq: LCD (实际上指 SPI 的通讯速率) 的频率 color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36), 默认 lcd.BLACK 2. lcd.clear() 将液晶屏清空为黑色或者指定的颜色。 参数 color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36) 3. lcd.freq(freq) 设置或者获取 LCD (SPI) 的频率 Paremeters freq: LCD (SPI) 的频率 Return LCD 的频率 4. lcd.direction(dir) 在 v0.3.1 之后已经被舍弃, 请使用lcd.rotation 和 lcd.invert代替, 如非必要请勿使用, 接口仍会被保留用于调试使用 设置屏幕方向, 以及是否镜像等 参数 dir: 正常情况下推荐 lcd.YX_LRUD 和 lcd.YX_RLDU, 另外还有其它值,交换 XY 或者 LR 或者 DU即可 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏 #实验程序之三:LCD液晶显示器彩条测试 import lcd,image, time lcd.init( type = 1 , freq = 15000000 ) # lcd.init(type=2, freq=20000000) # lcd.init(type=1, width=320, height=240, invert=True, freq=20000000) img = image.Image(size = ( 240 , 240 )) img.draw_rectangle( 0 , 0 , 30 , 240 , fill = True , color = ( 0xff , 0xff , 0xff )) img.draw_rectangle( 30 , 0 , 30 , 240 , fill = True , color = ( 250 , 232 , 25 )) img.draw_rectangle( 60 , 0 , 30 , 240 , fill = True , color = ( 106 , 198 , 218 )) img.draw_rectangle( 90 , 0 , 30 , 240 , fill = True , color = ( 98 , 177 , 31 )) img.draw_rectangle( 120 , 0 , 30 , 240 , fill = True , color = ( 180 , 82 , 155 )) img.draw_rectangle( 150 , 0 , 30 , 240 , fill = True , color = ( 231 , 47 , 29 )) img.draw_rectangle( 180 , 0 , 30 , 240 , fill = True , color = ( 32 , 77 , 158 )) img.draw_rectangle( 210 , 0 , 30 , 240 , fill = True , color = ( 27 , 28 , 32 )) lcd.display(img) count = 500 while count > 0 : t = time.ticks_ms() lcd.display(img) print (time.ticks_ms() - t) count - = 1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏 #实验程序之四:测试Microphone阵列算法 from Maix import MIC_ARRAY as mic import lcd lcd.init() mic.init() while True : imga = mic.get_map() b = mic.get_dir(imga) a = mic.set_led(b,( 0 , 0 , 255 )) imgb = imga.resize( 160 , 160 ) imgc = imgb.to_rainbow( 1 ) a = lcd.display(imgc) mic.deinit() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏 #实验程序之五:图形与hello maixpy import lcd, time import image bg = ( 236 , 36 , 36 ) lcd.init(freq = 15000000 ) lcd.direction(lcd.YX_RLDU) img = image.Image() img.draw_string( 60 , 100 , "hello maixpy" , scale = 2 ) img.draw_rectangle(( 120 , 120 , 30 , 30 )) img.draw_circle(( 150 , 140 , 80 )) img.draw_cross(( 250 , 40 )) img.draw_arrow(( 250 , 200 , 20 , 200 ), color = ( 236 , 36 , 36 )) lcd.display(img) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #MicroPython动手做(05)——零基础学MaixPy之LCD液晶屏 #实验程序之六:碰碰球演示 import image, lcd lcd.init(freq = 20000000 ) i = 0 dir = 1 while ( True ): img = image.Image(copy_to_fb = 1 ) img.clear() img.draw_rectangle(i, 50 , 50 , 50 ) lcd.display(img) if dir : i + = 5 if i = = 270 : dir = 0 else : i - = 5 if i = = 0 : dir = 1 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性