01
概述
ST7735S是另一款液晶显示控制器,它具有更高的性能和功能。它支持最高分辨率为160×128的TFT模块,支持完整的RGB分量控制,并且具有一个16位数据总线,可以支持最高分辨率为320×240的TFT模块。此外,它还支持多种控制器模式,包括基本模式,抗锯齿模式,双重模式,以及深色模式。它还支持多种控制器模式,如颜色表,色彩深度,图像处理等。
02
TFT-LCD
TFT-LCD,全称Thin Film Transistor Liquid Crystal Display,即薄膜晶体管液晶显示器,是多数液晶显示器的一种,使用薄膜晶体管技术改善影象品质。这种显示器技术是一种微电子技术与液晶显示器技术巧妙结合的技术。
具体来说,TFT-LCD由一系列的像素组成,每个像素由液晶分子和薄膜晶体管构成。薄膜晶体管是一种电子开关,通过控制其通断状态来控制液晶分子的排列,从而实现像素的显示。每个像素都有一个对应的薄膜晶体管,它们分别由一个源极、栅极和漏极组成。当薄膜晶体管的栅极电压升高时,源极和漏极之间会形成一个导通通道,电流可以通过。反之,当栅极电压降低时,通道将关闭,电流无法通过。
液晶分子的排列状态会影响光的传播和偏振方向。液晶分子在电场的作用下可以呈现不同的排列方式,分别为平行排列和垂直排列。当液晶分子呈现平行排列时,光线经过液晶层时会发生偏转,无法通过偏振器,像素呈现出黑色。而当液晶分子呈现垂直排列时,光线能够通过液晶层和偏振器,像素呈现出亮色。
TFT-LCD液晶屏的优点包括显示效果良好,色彩还原度远超其他种类的显示屏,呈现给用户的画面色彩鲜艳,饱和度高,纯白、纯黑画面纯净。同时,其IPS系列可以达到178度全视角,用户无论从哪个角度观看效果都非常好。然而,由于其超薄的外形,无法实现超高亮度的需求,亮度上存在一定的限制。
TFT-LCD液晶屏的应用场景非常广泛,包括消费类电子产品(如智能手机、平板电脑、笔记本电脑、电视机等)、医疗设备领域(如超声诊断仪、心电图机等)、工业自动化领域(如数控机床、工业机器人等)以及汽车电子领域(如汽车仪表、导航设备等)。
另外,根据行业报告,TFT-LCD光罩市场规模在逐年增长,其在笔记本和平板电脑、液晶显示器、智能手机、液晶电视等领域的应用也在不断扩大。
总的来说,TFT-LCD技术因其独特的显示性能和广泛的应用场景,成为了当今显示技术领域的重要一环。如需更多关于TFT-LCD技术的信息,建议查阅相关的技术手册或行业研究报告。
03
组件的使用
1 Gitee链接地址
Demo位于amaziot_bloom_os_sdk\sample\3rd\3.0_ST7735S Gitee源码地址:https://gitee.com/ning./hongdou Github源码地址:https://github.com/ayumid/hongdou 编译指令:.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.0_ST7735S |
2 组件功能介绍
驱动TFT-LCD显示图片,不同大小的汉字,字符,数字;画圆,画矩形,画线;LCD驱动使用ST7735S。任何品牌的LCD,只要是驱动芯片使用的ST7735S,都可以使用本驱动。驱动使用模拟spi实现。
3 代码讲解
1 drv_st7735s_lcd_fill
功能:该函数用于,在指定区域填充颜色。
参数:
参数 | 释义 |
xsta,ysta | 起始坐标 |
xend,yend | 终止坐标 |
返回值:无
示例:
C |
2 drv_st7735s_draw_point
功能:该函数用于,在指定位置画点。
参数:
参数 | 释义 |
x,y | 画点坐标 |
color | 点的颜色 |
返回值:无
示例:
C |
3 drv_st7735s_draw_line
功能:该函数用于,根据坐标画圆。
参数:
参数 | 释义 |
x1,y1 | 起始坐标 |
x2,y2 | 终止坐标 |
color | 线的颜色 |
返回值:无
示例:
C |
4 drv_st7735s_draw_rectangle
功能:该函数用于,指定坐标画矩形。
参数:
参数 | 释义 |
x1,y1 | 起始坐标 |
x2,y2 | 终止坐标 |
color | 线的颜色 |
返回值:无
示例:
C |
5 drv_st7735s_draw_circle
功能:该函数用于,画圆。
参数:
参数 | 释义 |
x0,y0 | 圆心坐标 |
r | 半径 |
color | 圆的颜色 |
返回值:无
示例:
C |
6 drv_st7735s_show_chinese
功能:该函数用于,显示汉字串。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 字号 可选 12 16 24 32 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
7 drv_st7735s_show_chinese_12x12
功能:该函数用于,显示单个12x12汉字。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 12 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
8 drv_st7735s_show_chinese_16x16
功能:该函数用于,显示单个16x16汉字。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 字号 可选 12 16 24 32 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
9 drv_st7735s_show_chinese_24x24
功能:该函数用于,显示单个24x24汉字。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 字号 可选 12 16 24 32 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
10 drv_st7735s_show_chinese_32x32
功能:该函数用于,显示单个32x32汉字。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 字号 可选 12 16 24 32 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
11 drv_st7735s_show_char
功能:该函数用于,显示单个字符。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 字号 可选 12 16 24 32 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
12 drv_st7735s_show_string
功能:该函数用于,显示字符串。
参数:
参数 | 释义 |
x,y | 显示坐标 |
*s | 要显示的汉字串 |
fc | 字的颜色 |
bc | 字的背景色 |
sizey | 字号 可选 12 16 24 32 |
mode | 0非叠加模式 1叠加模式 |
返回值:无
示例:
C |
13 drv_st7735s_pow
功能:该函数用于,显示数字。
参数:
参数 | 释义 |
m | 底数 |
n | 指数 |
返回值:无
示例:
C |
14 drv_st7735s_show_pic
功能:该函数用于,显示图片。
参数:
参数 | 释义 |
x,y | 起点坐标 |
length | 图片长度 |
width | 图片宽度 |
pic[] | 图片数组 |
返回值:无
示例:
C |
15 drv_st7735s_delay_ms
功能:该函数用于,延时函数。
参数:
参数 | 释义 |
ms | 毫秒 |
返回值:无
示例:
C |
16 drv_st7735s_gpio_init
功能:该函数用于,gpio初始化。
参数:无
返回值:无
示例:
C |
17 drv_st7735s_wr
功能:该函数用于,LCD串行数据写入函数。
参数:
参数 | 释义 |
dat | 要写入的串行数据 |
返回值:无
示例:
C |
18 drv_st7735s_wr_byte
功能:该函数用于,写一个字节数据。
参数:
参数 | 释义 |
dat | 写入的数据 |
返回值:无
示例:
C |
19 drv_st7735s_wr_word
功能:该函数用于,LCD写入两个字节数据。
参数:
参数 | 释义 |
dat | 写入的数据 |
返回值:无
示例:
C |
20 drv_st7735s_wr_reg
功能:该函数用于,写LCD写入命令。
参数:
参数 | 释义 |
dat | 写入的命令 |
返回值:无
示例:
C |
21 drv_st7735s_addr_set
功能:该函数用于,设置起始和结束地址。
参数:
参数 | 释义 |
x1,x2 | 设置列的起始和结束地址 |
y1,y2 | 设置行的起始和结束地址 |
返回值:无
示例:
C |
22 drv_st7735s_init
功能:该函数用于,st7735s初始化。
参数:无
返回值:无
示例:
C |
4 Demo实战
4.1 创建一个Demo
复制20.1_file_xtu示例工程,到同一个文件夹下,修改文件名为3.0_ST7735S,如图:
4.2 修改makefile
增加文件组件所在目录头文件路径,和源文件路径,如图:
4.3 增加头文件
使用代码编辑器,将新建的工程文件加入代码编辑器中,打开main.c,修改main.c,加入am.h等头文件,如图:
4.4 修改代码
在Phase2Inits_exit 创建一个任务,如图:
4.5 宏定义介绍
输出日志到DEBUG 串口,日志比较少,可以输出到这个串口,如果日志比较多,需要输出到usb口,以免不必要的问题出现
输出日志到USB 串口,使用catstudio查看,catstudio查看日志需要更新对应版本mdb.txt文件,软件打开filtter过滤日志,只查看用户输出的日志
栈空间宏定义
4.6 全局变量介绍
任务栈空间,本例使用数组实现,用户在做项目时,可以预先估算下当先任务需要的大致栈空间,OS没有提供可以查看栈空间使用情况的API
任务指针
4.7 函数介绍
底层初始化,本例空
底层初始化,本例空
底层初始化,本例空
创建主任务,初始化消息队列,定时器,任务等。
代码片段:
C |
主任务,获取imsi,rsrq等参数信息。
代码片段:
C |
4.8 编译
在SDK根目录打开命令行,输入命令.\build.bat -l .\amaziot_bloom_os_sdk\sample\3rd\3.0_ST7735S\
C++ |
4.9 生成固件
参考入门中开发工具,生成工具。
4.10 测试
测试步骤:
注:本文部分内容来源于网络,如有侵权,请及时联系我们。
本文章源自奇迹物联开源的物联网应用知识库Cellular IoT Wiki,更多技术干货欢迎关注收藏Wiki:Cellular IoT Wiki 知识库(https://rckrv97mzx.feishu.cn/wiki/wikcnBvAC9WOkEYG5CLqGwm6PHf)
文章评论(0条评论)
登录后参与讨论