单片机/MCUwilliam hill官网
直播中

jf_85110202

未满1年用户 263经验值
擅长:嵌入式技术 开发板 仪表仪器 单片机
私信 关注
[文章]

《DNK210使用指南 -CanMV版 V1.0》第二十四章 LCD显示实验

第二十四章 LCD显示实验

本章将介绍初步介绍CanMVLCD的使用。通过本章的学习,读者将学习到板载LCD的简单使用。
本章分为如下几个小节:
24.1 lcd模块介绍
24.2 硬件设计
24.3 程序设计
24.4 运行验证


24.1 lcd模块介绍
lcd模块是CanMV内置的模块,lcd模块用于驱动LCD进行一些简单的显示或获取LCD的相关信息。
lcd模块提供了init()函数,用于初始化LCDinit()函数如下所示:
lcd.init(type=1, freq=15000000, color=lcd.BLACK)
init()用于对LCD进行初始化,初始化时可以传入部分初始化参数。
type指的是设备类型,该参数是CanMV的保留参数,不用理会也不可传入其他非默认值。
freq指的是与LCD通讯的SPI的通讯速率,通常情况下保持默认即可。
color指的是LCD初始化后的全屏显示的颜色,默认为黑色。
init()函数的使用示例如下所示:
import lcd
lcd.init()
lcd模块提供了width()height()函数,分别用于获取LCD的宽度(水平分辨率)和高度(垂直分辨率),width()height()函数如下所示:
lcd.width()
lcd.height()
width()height()函数的使用示例如下所示:
import lcd
width = lcd.width()
height = lcd.height()
lcd模块提供了fill_rectangle()函数,用于绘制一个填充矩形,fill_rectangle函数如下所示:
lcd.fill_rectangle(x, y, w, h, color)
xywh分别指的是矩形的左上角XY坐标以及矩形的宽度和高度。
color指的是矩形的填充颜色,该参数可以值元组指定的RGB三个通道的值,如(255, 255, 255)RGB565的整数值,如0x00F8(高低字节需进行对调),也可以是lcd模块中定义好的颜色常量,如下表所示:
常量
颜色
lcd.BLACK
Black
lcd.NAVY
Navy
lcd.DARKGREEN
Dark green
lcd.DARKCYAN
Dark cyan
lcd.MAROON
Maroon
lcd.PURPLE
Purle
lcd.OLIVE
Olive
lcd.LIGHTGREY
Light grey
lcd.DARKGREY
Dark grey
lcd.BLUE
Blue
lcd.GREEN
Green
lcd.CYAN
Cyan
lcd.RED
Red
lcd.MAGENTA
Magenta
lcd.YELLOW
Yellow
lcd.WHITE
White
lcd.ORANGE
Orange
lcd.GREENYELLOW
Green yellow
lcd.PINK
Pink
24.1.1 lcd模块提供的颜色常量
fill_rectangle()函数的使用示例如下所示:
import lcd
lcd.init()
lcd.fill_rectangle(0, 0, 10, 10, lcd.RED)
lcd模块提供了clear()函数,用于清屏LCD显示,clear()函数如下所示:
lcd.clear(color=lcd.BLACK)
clear()函数用于清屏LCD显示,即用默认的黑色或指定颜色填充整个LCD显示屏。
color指的是用于填充整个LCD显示屏的颜色,可选参数请见上文中fill_rectangle()函数的color参数描述,若color参数为空,则使用默认的黑色填充整个LCD显示屏。
clear()函数的使用示例如下所示:
import lcd
lcd.init()
lcd.clear(color=lcd.RED)
lcd模块提供了draw_string()函数,用于在LCD上简单地显示字符串,draw_string()函数如下所示:
lcd.draw_string(x, y, string, fontc=lcd.RED, bgc=lcd.BLACK)
draw_string()函数用于在LCD的指定位置显示指定的字符串,可以指定字符串的颜色和背景颜色,但无法指定字符串的字体和字号。
xy分别指的是字符串左上角的XY坐标。
string指的是指定的字符串。
fontcbgc分别指的是字符串的字体颜色和背景颜色,可选参数请见上文中fill_rectangle()函数的color参数描述,若fontcbgc参数为空,则分别使用对应默认的红色和黑色作为字符串的字体颜色和背景颜色。
draw_string()函数的使用示例如下所示:
import lcd
lcd.init()
lcd.draw_string(0, 0, "Hello, DNK210!")
lcd模块提供了display()函数,用于在LCD上显示一个Image对象,display()函数如下所示:
lcd.display(image, roi, oft)
display()函数用于在LCD的指定位置以指定的大小显示一个指定的Image对象。
image指的是Image对象,有关image的介绍会在后续的章节中提到,读者可以暂且认为Image对象就是一张图像。
roi指的是对Image对象感兴趣的区域,若未指定,即为图像矩形。
oft指的是偏移坐标。
display()函数的使用示例如下所示:
import lcd
import image
img = image.Image(size=(320, 240))
img.draw_rectangle(0, 0, 320, 240, color=(255, 255, 255), fill=True)
img.draw_string(0, 0, "Hello, DNK210!", (255, 0, 0), 2.5)
lcd.init()
lcd.display(img)
lcd模块提供了mirror()函数,用于水平镜像LCD的显示,mirror()函数如下所示:
lcd.mirror(invert)
mirror()函数用于水平镜像LCD的显示,水平镜像后,不论是已经显示再LCD上的画面或是后续绘制的图像都将以水平镜像的方式进行显示。
invert指的是是否使能LCD的水平镜像显示,当为True时,使能LCD的水平镜像显示,当为False时,禁止LCD的水平镜像显示。
mirror()函数的使用示例如下所示:
import lcd
lcd.init()
lcd.mirror(True)
lcd模块提供了rotation()函数,用于旋转LCD的显示,rotation()函数如下所示:
lcd.rotation(dir)
rotation()函数用于旋转LCD的显示,旋转后,不论是已经显示再LCD上的画面或是后续绘制的图像都将以设置的旋转方向进行显示。
dir指的是LCD旋转的方向,可选的参数为0~3这四个数,分别对应依次再默认旋转方向上顺时针旋转90°的方向。
rotation()函数的使用示例如下所示:
import lcd
lcd.init()
lcd.rotation(0)
24.2 硬件设计
24.2.1 例程功能
1. 使用lcd模块初始化LCD,在LCD上显示一段字符串,并不断更换背景颜色
24.2.2 硬件资源
1. LCD
        LCD_RD - IO34
        LCD_BL - IO35
        LCD_CS - IO36
        LCD_RST - IO37
        LCD_RS - IO38
        LCD_WR - IO39
        LCD_D0~LCD_D7 - SPI0_D0~SPI0_D7
24.2.3 原理图
本章实验内容,需要使用到板载的LCD显示屏,正点原子DNK210开发板上的LCD显示屏连接原理图,如下图所示:
第二十四章 LCD显示实验3348.png
24.2.3.1 LCD显示屏连接原理图
24.3 程序设计
24.3.1 lcd模块
有关lcd模块的介绍,请见第24.1小节《lcd模块介绍》。
24.3.2 程序流程图
第二十四章 LCD显示实验3465.png

24.3.2.1 LCD显示实验流程图
24.3.3 main.py代码
main.py中的脚本代码如下所示:
import lcd
import time
# 初始化LCD
lcd.init()
while True:
    for bg_color in [lcd.WHITE, lcd.BLACK, lcd.BLUE, lcd.MAGENTA, lcd.GREEN, lcd.CYAN, lcd.YELLOW]:
        # 清屏LCD显示
        lcd.clear(bg_color)
        # 显示字符串
        lcd.draw_string(10, 10, "DNK210", lcd.RED, bg_color)
        lcd.draw_string(10, 20, "LCD", lcd.RED, bg_color)
        lcd.draw_string(10, 30, "ATOM@ALIENTEK", lcd.RED, bg_color)
        time.sleep_ms(1000)
可以看到首先是使用lcd模块对LCD进行初始化,接着在一个循环中不断改变LCD的背景颜色,并在LCD上显示一段字符串。
24.4 运行验证
DNK210开发板连接CanMV IDE后,点击CanMV IDE上的“开始(运行脚本)”按钮后,可以看到LCD上显示了一段字符串,并不断地更换背景颜色,如下图所示:
第二十四章 LCD显示实验4114.png
24.4.1 LCD显示(白色背景)
第二十四章 LCD显示实验4136.png
24.4.2 LCD显示(蓝色背景)

更多回帖

发帖
×
20
完善资料,
赚取积分