首页 > 其他分享 >《DNK210使用指南 -CanMV版 V1.0》第二十四章 LCD显示实验

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

时间:2024-09-14 10:05:18浏览次数:10  
标签:函数 color lcd V1.0 LCD 模块 所示 使用指南

第二十四章 LCD显示实验

1)实验平台:正点原子DNK210开发板

2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0

3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750

4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html

5)正点原子官方B站:https://space.bilibili.com/394620890

6)正点原子K210技术交流企鹅群:605557868

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

24.1 lcd模块介绍
lcd模块是CanMV内置的模块,lcd模块用于驱动LCD进行一些简单的显示或获取LCD的相关信息。
lcd模块提供了init()函数,用于初始化LCD,init()函数如下所示:

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)

x、y、w和h分别指的是矩形的左上角X和Y坐标以及矩形的宽度和高度。
color指的是矩形的填充颜色,该参数可以值元组指定的RGB三个通道的值,如(255,255, 255)或RGB565的整数值,如0x00F8(高低字节需进行对调),也可以是lcd模块中定义好的颜色常量,如下表所示:


表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的指定位置显示指定的字符串,可以指定字符串的颜色和背景颜色,但无法指定字符串的字体和字号。
x和y分别指的是字符串左上角的X和Y坐标。
string指的是指定的字符串。
fontc和bgc分别指的是字符串的字体颜色和背景颜色,可选参数请见上文中fill_rectangle()函数的color参数描述,若fontc或bgc参数为空,则分别使用对应默认的红色和黑色作为字符串的字体颜色和背景颜色。
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 例程功能
使用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显示屏连接原理图,如下图所示:

图24.2.3.1 LCD显示屏连接原理图

24.3 程序设计

24.3.1 lcd模块
有关lcd模块的介绍,请见第24.1小节《lcd模块介绍》。

24.3.2 程序流程图


图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上显示了一段字符串,并不断地更换背景颜色,如下图所示:

图24.4.1 LCD显示(白色背景)

图24.4.2 LCD显示(蓝色背景)

标签:函数,color,lcd,V1.0,LCD,模块,所示,使用指南
From: https://www.cnblogs.com/zdyz/p/18410660

相关文章

  • 分类记账小程序系统V1.0.1
    一款支持多人协作的记账本小程序,可用于家庭,团队,组织以及个人的日常收支情况记录,支持周月年度统计V1.0.1修复已知BUG1、新增备案号填写入口2、小程序我的页面底部加入备案号展示3、修复已知小BUG......
  • 西陆旅游系统V1.0.0
    旅游系统,包含消费者端(手机端)、机构工作人员(手机端)、机构端(PC)、平台管理端(PC)。机构可以发布旅游线路、景点项目;用户在线购买订票,支持成人价和儿童价两种票价,支持工作人员现场扫码核销,支持二级分销(高级授权)。V1.0.0发布版本......
  • 嘀嗒陪护小程序V1.0.7
    原生微信小程序开发的陪诊陪护小程序,支持多运营区,陪护师、推广者等完整闭环功能,快速搭建陪护业务平台。提供全部无加密源码,支持私有化部署。V1.0.7自定义文字,可指定陪护师1.各运营区可选择是否开启允许用户指定陪护师进行服务2.自定义部分文字(身份资料,提现资料)......
  • 会议室预约小程序V1.0.0
    会议室预约,支持设置免费预约和付费预约(高级授权)、积分兑换商城(高级授权)、积分签到(高级授权)等。提供全部前后端无加密源代码、数据私有化部署。V1.0.0发布版本......
  • 西陆二手交易系统V1.0.1
    二手交易系统,卖家可以发布二手信息,买家可以在线询价,支持在线聊天(高级授权),在线购买支付,支持发布高价回收(高级授权)信息。自带社交板块,用户可以发布帖子、加入圈子、关注好友。V1.0.1bug修复与优化优化与bug1.留言增加小程序文本检测2.修复评论时间转换方法bug3.后台分类删除bug4.......
  • 工具箱、多种灵活的代码采纳方式等6项功能升级,CodeGeeX v1.0.4版本上线Visual Studio
    CodeGeeXv1.0.4版本上线VisualStudio插件市场,这个版本为VisualStudio平台上的开发者带来了多项新功能和性能优化,以便于更好的利用智能辅助编程助手CodeGeeX插件,提升编程体验。新功能亮点速览:1.侧边栏工具箱功能v1.0.4版本中,CodeGeeX新增了侧边栏工具箱功能。在工具箱中,可以根据......
  • 露营地管理小程序V1.0.0
    现代化的露营地管理小程序,是专为露营业务设计开发小程序应用。平台拥有多角色管理,同时具有营位预定、门票购买等功能模块。V1.0.0发布版本......
  • 课程预约小程序V1.0.1
    专属课程预约小程序,程序适用于SPA瑜伽、普拉提舍宾、培训机构等场所,通过多角色身份进行管理,让你的瑜伽馆/培训机构更加操作便捷。Uniapp小程序端包含会员入口、老师入口、员工入口。V1.0.1安全更新修复提现接口安全风险1.修复提现接口安全风险,请务必更新升级。......
  • XYvenue场地预定小程序V1.0.3
    多场馆场地预定小程序,提供运动场馆运营解决方案,适用于体育馆、羽毛球馆、兵乒球馆、篮球馆、网球馆等场馆。V1.0.3修复退订时间设置不生效问题......
  • 课程题目生成工具V1.0
    服务器本工具使用阿里云八代实例(g8i)+xFasterTransformer+Qwen-7B-Chat模型搭建而成通义千问-7B(Qwen-7B-Chat)本工具基于通义千问-7B进行开发,通义千问-7B(Qwen-7B)是阿里云研发的通义千问大模型系列的70亿参数规模模型。Qwen-7B是基于Transformer的大语言模型,在超大规模的预训练数据上......