首页 > 器件类别 > LCD液晶显示模块

1.8inch LCD Module

器件类别:LCD液晶显示模块   

厂商名称:微雪电子(Waveshare)

厂商官网:http://www.waveshare.net

下载文档
文档预览
1.8inch LCD Module
用户手册
1.8inch LCD Module
用户手册
产品概述
本产品是
1.8
寸电阻屏模块,分辨率为
128*160,带有内部控制器,½用 SPI
接口通信,已封装
号基本½数,可以实现点的大小,线的粗细实虚,是否填充圆,矩½,以及显示英文字符。
提供树莓派例程,STM32 例程,Arduino 例程
产品特性
类型:
接口:
控制芯片:
色阶指数:
分辨率:
产品尺寸:
显示尺寸:
像素大小:
工½温度:
接口说明
TFT
SPI
ST7735S
256K
128*160 (Pixel)
56.5 * 34(mm)
35.4(W) * 28.03(H)(mm)
0.219(W)*0.219(H)(MM)
-30°C ~ 85°C
标识
3V3
GND
DIN
CLK
CS
DC
RST
BL
3.3V
电源输入
SPI
数据输入
SPI
时钟
从机片选
数据/½令
复½
背光
描述
版本:V1.0,
2017
11
7
1
1.8inch LCD Module
用户手册
程序分析
1.
工½原理
ST7735S
是一款
132*162
像素的
LCD,而本产品为 128*160
像素的
LCD,因此在显示
上做了一些处理:水平方向从第二个像素点开始显示,垂直方向从第一个像素点开始显
示,这样就可以保证显示的时候
LCD
RAM
对应的½½与实际½½是一致的。
LCD
支持
12
½,16 ½以及
18
½每像素的输入颜色格式,即
RGB444,RGB565,
RGB666
三种颜色格式,本例程½用
RGB565
的颜色格式,这也是常用的
RGB
格式
LCD
½用四线
SPI
通信接口,这样可以大大的节省
GPIO
口,同时通信是速度也会比较
2.
通信协议
注:与传统的
SPI
协议不同的地方是:由于是只需要显示,故而将从机发送到主机的数据线进
行了隐藏,该表格详见
datasheet page 58.
RESX:复½,模块上电时拉½,通常情况下½ 1;
IM2:控制模块数据通信方式,此处½用 SPI
通信;
CSX:为从机片选,仅½ CS
为½电平时,芯片才会被½½
D/CX:芯片的数据/½令控制引脚,½ DC=0
时写½令,½
DC=1
时写数据
SDA:传输的数据,即 RGB
数据
SCL:SPI
通信时钟
版本:V1.0,
2017
11
7
2
1.8inch LCD Module
用户手册
对于
SPI
通信而言,数据是有传输时序的,即时钟相½(CPHA) 与时钟极性(CPOL)的
组合:
CPOL
的高½决定串行同步时钟的空闲状态电平,CPOL=0,为½电平。
CPHA
的高½决定串行同步时钟是在第一个时钟跳变沿还是第二个时钟跳变沿数据被采
集, ½
CPHL=0,在第一个跳变沿进行数据采集
这个两者组合就成为四种
SPI
通信方式,½内通常½用的是
SPI0,
GPHL=0, CPOL=0
从图中可以看出,½
SCLK
第一个下降沿时开始传输数据,一个时钟周期传输
8bits
数据,
½用
SPI0,按½传输,高½在前,½½在后。
实验演示
本模块提供树莓派和
STM32
Arduino
例程,其中树莓派提供了
BCM2835, WiringPi
以及
python
程序。实现常用屏幕操½功½:画点、画线、画矩½,画圆及他们的大小,½度。填
充、显示英文字符并提供
5
种常见字½,以及画图等功½。
为了方便您的½用,这里对例程½用进行了说明。
树莓派程序
1.
树莓派开启
SPI
功½
sudo raspi-config
选择
Advanced Options -> SPI -> yes
启动
SPI
内核驱动
2.
½数库的安装
关于树莓派½数库的安装详细见微雪课堂:
http://www.waveshare.net/study/article-742-1.html
此处详细介绍了
WiringPi、bcm2835、python
的安装
3.
½用
对于
BCM2835
WiringPi
而言只需要把对应的例程拷贝进树莓派中(可通过
samba
或者
直接复制到
SD)即可,一下示例均复制到了树莓派 pi
用户目½下。
3.1 BCM2835
½用
运行
ls
½令,可见如下文件
版本:V1.0,
2017
11
7
3
1.8inch LCD Module
用户手册
其中:bin 文件夹中为项目生成的.o 文件,通常情况下我们是不需要管的:
Fonts
文件夹中为
5
种常见字½。
Pic
文件夹中为显示的图片,请保证图片的像素为
128*128,否则可½显示不全。并且需要
保证图片为.bmp 格式的。
Obj
文件夹中为项目文件,其中有
mian.c, OLED_Driver.c
及.h,
DEV_Config.c
及.h,以及
OLED_GUI.c
及.h
main.c:主½数。需要注意的是,½然定义了
OLED_ScanDir,这个是控制扫描方向的,½
是此模块为树莓派专用,同时也为了程序的兼容性,此处½然定义了½数,½是不会½响
扫描方向。
DEV_Config.c:定义了树莓派的管脚及通信方式。
LCD_Driver.c:OLED
的驱动,通常情况下不需要做修改
LCD_GUI.c:常用的画点,线,图,字½数,通常情况下½只需要修改
GUI_Show()这个
jams
就,这个½数为显示调用½数。
LCD_BMP.c:
读取解析
bmp
图片文件,然后进行显示。
Makefile:
工程的编译规则,如果更改了代码,需要先执行
make clean
清除全部文件依
赖以及生产的可执行文件,然后再执行
make,这样 makefile
就会自动编译整个项目从而生
成可执行文件。
oled_1in8:可执行文件,通过
make
½令生成
用户½用的时候只需要执行
sudo ./oled_1in8
执行程序即可
3.2 WiringPi
½用
运行
ls
½令,可见如下文件
WiringPi
BCM2835
文件目½相同,区别在两点:
一:
WiringPi
是通过读取
Linux
系统的设备文件操½,而
bcm2835
则是树莓派
cpu
芯片的
库½数,操½的是寄存器。因此如果先½用了
BCM2835
库,wiringpi 则会½用失败,此时
重启系统即可;
版本:V1.0,
2017
11
7
4
1.8inch LCD Module
用户手册
二:由于第一个区别,他们的底层的配½不一样,在
DEV_Config.c
中½用的为
WiringPi
其相应的
wiringPiSPI
来提供底层接口
同样,只需运行
sudo ./oled_1in8
运行程序即可
3.3 Python
运行
ls,可见文件如下:
LCD_1in8.py:
LCD
驱动程序
LCD_Config.py:
硬件底层接口配½
运行程序:
sudo python main.py
注:有些树莓派系统可½没有
image
这个库。运行:sudo
apt-get install python-imaging
安装
python-imaging
Image
python
图像处理库,任½一副图像½是用一个
Image
对象表示,因此可以通过
new
方法来创建一张空½图片,大小与
LCD
的最大啊显示范围一直,通过
Draw
库来进行
画图, 最后把这个图片传递到
LCD
上。这里通过
Image.load()去读取点的 RGB888
数据,
把他们的数据传话为
RGB565,通过每一个点的扫描,达到整屏显示的效果。核心代码如
图:
3.4
开机自动运行
通过配½/etc/rc.local,½代码在树莓派启动时运行
运行:
sudo vim /etc/rc.local
exit 0
前加上:
sudo python /home/pi/python/demo.py &
需要注意的是:/home/pi/python/demo.py 为放½例程所在目½½½,可以通过½令:pwd
来获取
版本:V1.0,
2017
11
7
5
查看更多>
【征询贴】OLED模块
1、团购备案号:0022、团品介绍:OLED显示自发光,无需背光源,无论白天夜晚显示明亮锐利!效果远超液晶显示。全屏点亮显示整机耗电约22.75mA;普通汉字整屏显示,耗电约5mA;全黑不显示不休眠,耗电1.2mA;休眠状态约几百uA提供例程。本模块是SPI接口,可与我们LPC2103核心模块,LPC2132,LPC2138,LPC2148核心模块直接连接模块外形尺寸:27mm*33mm,OLE...
ddllxxrr 淘e淘
进芯电子AVP32F335的ADC使用时,采样值偏差
你好,我在用AVP32F335,在对外部标准的1.5v采样的时候,会出现采样值偏离较大,有些芯片甚至不到1.4v的采样值,实测AD口的信号是1.5v。下面是初始化的代码:1.AdcRegs.ADCTRL1.bit.RESET=1;惹的祸以上这个问题,首先要考虑的是ADCOFFTRIM寄存器。需要考虑系统出厂默认ADCOFFTRIM寄存器是否曾改变过?芯片在出厂测试时,会对每颗芯片的ADC测试,并把零点的偏差值写入ROM中,而在芯片脱离仿真启动的过程中,B...
湖南进芯电子科技有限公司 国产芯片交流
【极海APM32F407 Tiny Board】+2.浅跑个HS HID例程
本篇将在APM32F407TinyBoard上跑一下官方SDK里面提供的设备端OTGD_HID_HS2例程,并对例程里面程序执行流程进行简要分析,后续将在该例程上修改,进一步实现一个HID+UAC功能的USB声卡设备。因为APM32F407TinyBoard上默认预留出来的Type-A和Type-C口都是接到PB14、PB15引脚上,属于OTGHS的差分信号引脚,也可以外接USB接口到PA11、PA12上使用OTGFS差分信号引脚,对应SDK中例程是OTGD_HID、OTGD...
superw 国产芯片交流
双向二极管是否可用两个二极管代?
谁知道双向二极管是否可用两个二极管代?啥电路板上有?先谢了。双向二极管是否可用两个二极管代?一般不行,而且与你的用途有很大关系看一下参数就知道了。不能代替的你说的是双向触发二极管吧,其和普通二极管是完全不同的工艺,参杂方式也不一样。工作曲线更是完全不同。如果说近似的话相当于两个稳压二极管串联,其主要作用用来控制双向可控硅导通。这里有份资料。你看看就知道了...
七月七日晴 模拟电子
multisim仿真芯片供电端和接地端如何设置
multisim仿真时,图中7414N施密特反相器的供电端和接地端默认是隐藏的,但是将该芯片的供电端改成自己想要接的net后(如图中弹出的窗口),跟不改之前仿真结果没啥区别。甚至尝试将7414N供电端对应的net改为0,net0在电路上是接地的,这样,照样正常输出。按道理说这时7414N应该无法工作才对。是不是无论怎样改芯片供电或者接地端的net,multisim都默认这些芯片正常工作。multisim仿真芯片供电端和接地端如何设置multisim仿真时,图中7414N施密特反相器的供...
喜鹊王子 模拟电子
陀螺仪六轴九轴分别
6轴9轴的概念很好理解:说白了就是模块上装了哪些,多少传感器6轴:三轴(XYZ)加速度计+三轴(XYZ)陀螺仪(也叫角速度传感器),模块每次上电航向角就是0,没有绝对的参考(东西南北之分)。无法作为指南针使用9轴:6轴+三轴(XYZ)磁场传感器。如果校准完成,那么航向角每次上电有一个绝对的值(有东西南北之分),可以作为指南针使用。但是9轴模式下需要校准且很容易收到磁干扰(室内基本用不了)。6轴模块可以构成VRU(垂直参考单元)和IMU(惯性测量单元...
dream_star 传感器