1.44inch LCD HAT

来自Waveshare Wiki
跳转至: 导航搜索
1.44inch-LCD-HAT
{{{name2}}}
{{{name3}}}
功能简介
特性 无特性,不解释
显示尺寸 1.44英寸
分辨率 128×128
' 无特性,不解释
' 无特性,不解释
接口 SPI

说明

产品概述

提供树莓派程序驱动、FBTFT移植教程

产品参数

  • 工作电压: 3.3V
  • 通信接口: SPI
  • 屏幕类型: TFT
  • 控制芯片: ST7735S
  • 分辨率: 128*128 (Pixel)
  • 显示尺寸: 25.5*26.5(mm)
  • 像素大小: 0.20(W)*0.20(H)(MM)
  • 产品尺寸 65*30.2(mm)

功能引脚

功能引脚 树莓派接口(BCM) 描述
KEY1 P21 按键1GPIO
KEY2 P20 按键2GPIO
KEY3 P16 按键3GPIO
摇杆UP P6 摇杆上
摇杆Down P19 摇杆下
摇杆Left P5 摇杆左
摇杆Right P26 摇杆右
摇杆Press P13 摇杆按下
SCLK P11/SCLK SPI时钟线
MOSI P10/MOSI SPI数据线
DC P25 数据/命令选择
CS P8/CE0 片选
RST P27 复位
BL P24 背光

LCD 及其控制器

ST7735S是一款132*162像素的LCD控制器,而本产品为128*128像素的LCD,因此在显示上做了一些处理:水平方向从第二个像素点开始显示,这样就可以保证显示的时候LCD中RAM对应的位置与实际位置是一致的。
该LCD支持12位,16位以及18位每像素的输入颜色格式,即RGB444,RGB565,RGB666三种颜色格式,本例程使用RGB565的颜色格式,这也是常用的RGB格式
LCD使用四线SPI通信接口,这样可以大大的节省GPIO口,同时通信是速度也会比较快

通信协议

0.96inch lcd module spi.png
注:与传统的SPI协议不同的地方是:由于是只需要显示,故而将从机发往主机的数据线进行了隐藏,该表格详见Datasheet Page 66。
RESX为复位,模块上电时拉低,通常情况下置1;
CSX为从机片选, 仅当CS为低电平时,芯片才会被使能。
D/CX为芯片的数据/命令控制引脚,当DC = 0时写命令,当DC = 1时写数据。
SDA为传输的数据,即RGB数据。
SCL为SPI通信时钟。
对于SPI通信而言,数据是有传输时序的,即时钟相位(CPHA)与时钟极性(CPOL)的组合:
CPHA的高低决定串行同步时钟是在第一时钟跳变沿还是第二个时钟跳变沿数据被采集,当CPHA = 0,在第一个跳变沿进行数据采集;
CPOL的高低决定串行同步时钟的空闲状态电平,CPOL = 0,为低电平。
从图中可以看出,当SCLK第一个下降沿时开始传输数据,一个时钟周期传输8bit数据,使用SPI0,按位传输,高位在前,低位在后。

树莓派

提供C语言与python例程

树莓派使用教程

开启SPI接口

PS:如果使用的是Bullseye分支的系统,需要将”apt-get“改成“apt",Bullseye分支的系统只支持Python3。
  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi.png
然后重启树莓派:

sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

安装库

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用,python库可以不安装,直接运行程序即可

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install 
# 更多的可以参考官网:https://github.com/gpiozero/lg

python

sudo apt-get update
sudo apt-get install ttf-wqy-zenhei
sudo apt-get install python3-pip
sudo pip3 install spidev

下载例程

在树莓派终端运行:

sudo apt-get install p7zip-full -y
wget http://www.waveshare.net/w/upload/f/fa/1.44inch-LCD-HAT-Code.7z
7z x 1.44inch-LCD-HAT-Code.7z
sudo chmod 777 -R 1.44inch-LCD-HAT-Code
cd 1.44inch-LCD-HAT-Code/RaspberryPi/

运行测试程序

  • C语言
cd c
make clean
make
sudo ./main
  • 对于树莓派4B及raspbian_lite-2019-06-20系统之后需要设置如下,按键才能正常输入
sudo nano /boot/config.txt
#添加如下:
gpio=6,19,5,26,13,21,20,16=pu
  • python
cd python
sudo python main.py
sudo python key_demo.py


FBCP移植

PS:FBCP目前不兼容64位树莓派系统跟bookworm,建议使用32位系统。

Framebuffer 是用一个视频输出设备从包含完整的帧数据的一个内存缓冲区中来驱动一个视频显示设备。简单的来说,就是使用一个内存区来存储显示内容,改变内存的数据就可以改变显示的内容。
在 github 上有一个开源工程:fbcp-ili9341,该工程相比其他类fbcp工程,利用了局部刷新和DMA实现高达60fps的速度

编译与运行

sudo apt-get install cmake -y
cd ~
wget https://www.waveshare.net/w/upload/1/18/Waveshare_fbcp.zip
unzip Waveshare_fbcp.zip
cd Waveshare_fbcp
mkdir build
cd build
#以1.44inch_LCD_HAT为例
cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH44_LCD_HAT=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
#以1.3inch_LCD_HAT为例
cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_1INCH3_LCD_HAT=ON -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
make -j
sudo ./fbcp

设置开机自启动

sudo cp ~/Waveshare_fbcp/build/fbcp /usr/local/bin/fbcp
sudo nano /etc/rc.local

在 exit 0 前面添加 fbcp&。注意一定要添加"&" 后台运行,否则可能会出现系统不能启动的情况。
1in3 lcd fb5.png

设置用户界面显示尺寸

在/boot/config.txt 文件中设置用户界面显示尺寸。

sudo nano /boot/config.txt

添加

hdmi_force_hotplug=1
hdmi_cvt=300 300 60 1 0 0 0
hdmi_group=2
hdmi_mode=87
display_rotate=0

这里是设置系统界面分辨率,最后显示的效果是按照比例缩放显示在1.3inch LCD上。这里设置分辨率应稍大于LCD的分辨率,过高会导致字体显示模糊。

重启设备即可

sudo reboot


启动树莓派后可以发现屏幕已经出现用户界面了。
1.3inch lcd hat fbtftdesktop.png

模拟鼠标

模块上面板子一个摇杆和三个按键,我们可以用来控制树莓派的鼠标

  • 安装库并下载并运行例程
#python2
sudo apt-get install python-xlib
sudo pip install PyMouse
wget http://www.waveshare.net/w/upload/d/d3/Mouse.7z
7z x Mouse.7z
sudo python mouse.py
#python3
sudo apt-get install python3-xlib
sudo pip3 install PyMouse
sudo pip3 install unix
sudo pip3 install PyUserInput
wget http://www.waveshare.net/w/upload/d/d3/Mouse.7z
7z x Mouse.7z
sudo python3 mouse.py
  • 注意:mouse.py需要的图形化界面下运行,SSH登录命令行无法使用,可以直接跳过这一步骤,通过开机自启动运行程序。
  • 对于树莓派4B及raspbian_lite-2019-06-20系统之后需要设置如下,按键才能正常输入
sudo nano /boot/config.txt
#添加如下:
gpio=6,19,5,26,13,21,20,16=pu

使用摇杆上下左右,就可以看到鼠标在动了。

  • 配置成开机自启

注意不要加到/etc/rc.local中,因为rc.local在系统还没有进入桌面之前会执行,而PyMouse模块在命令行界面运行的话会报错没有鼠标这个事件,所以我们需要执行如下:

cd .config/
mkdir autostart
cd autostart/
sudo nano local.desktop

加入如下(添加对应的即可,不用全部添加进去):

#python2
[Desktop Entry]
Type=Application
Exec=python /home/pi/mouse.py
#python3
[Desktop Entry]
Type=Application
Exec=python3 /home/pi/mouse.py

然后重新启动树莓派,即可使用按键控制鼠标了。

sudo reboot

其他

有兴趣弄游戏机的小伙伴们可以参考下面这两个链接,这里不再详细讲解。
https://www.sudomod.com/forum/viewtopic.php?f=11&t=5371&start=10
https://pi0cket.com/guides/tiny-software-for-tinypi/#more-99

FAQ


对于树莓派系统镜像(2019-06-20-raspbian-buster)而言,需要在/boot/config.txt加入:

gpio=6,19,5,26,13,21,20,16=pu


开启了fbtft,重启之后会占用掉spidev0.0,此时如果需要运行示例程序,需要把/etc/modules中的开启fb对应的语句屏蔽掉。


售后


联系人:黄工
QQ:2850151199
EMAIL:2850151199@qq.com
电话:0755-83040712
微信:扫下方二维码添加
Service20-Weichat.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证