1.8inch LCD Module
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
|
目录
产品概述
提供树莓派(c\python)、stm32、Arduino、Jetson nano(c\python)例程
产品参数
- 工作电压: 3.3V
- 通信接口: SPI
- 屏幕类型: TFT
- 控制芯片: ST7735S
- 分辨率: 128*160 (Pixel)
- 显示尺寸: 35.4(W) * 28.03(H)(mm)
- 像素大小: 0.219(W)*0.219(H)(MM)
- 产品尺寸 56.5 * 34(mm)
接口说明
功能引脚 | 描述 |
VCC | 3.3V |
GND | 电源地 |
DIN | SPI数据输入 |
CLK | SPI时钟输入 |
CS | 片选,低电平有效 |
DC | 数据/命令选择 |
RST | 复位 |
BL | 背光 |
LCD 及其控制器
ST7735S是一款132*162像素的LCD,而本产品为128*160像素的LCD,因此在显示上做了一些处理:水平方向从第二个像素点开始显示,垂直方向从第一个像素点开始显示,这样就可以保证显示的时候LCD中RAM对应的位置与实际位置是一致的。
该LCD支持12位,16位以及18位每像素的输入颜色格式,即RGB444,RGB565,RGB666三种颜色格式,本例程使用RGB565的颜色格式,这也是常用的RGB格式
LCD使用四线SPI通信接口,这样可以大大的节省GPIO口,同时通信是速度也会比较快
通信协议
注:与传统的SPI协议不同的地方是:由于是只需要显示,故而将从机发往主机的数据线进行了隐藏,该表格详见Datasheet Page 66。
RESX为复位,模块上电时拉低,通常情况下置1;
CSX为从机片选, 仅当CS为低电平时,芯片才会被使能。
D/CX为芯片的数据/命令控制引脚,当DC = 0时写命令,当DC = 1时写数据
SDA为传输的数据,即RGB数据;
SCL为SPI通信时钟。
对于SPI通信而言,数据是有传输时序的,即时钟相位(CPHA)与时钟极性(CPOL)的组合:
CPHA的高低决定串行同步时钟是在第一时钟跳变沿还是第二个时钟跳变沿数据被采集,当CPHL = 0,在第一个跳变沿进行数据采集;
CPOL的高低决定串行同步时钟的空闲状态电平,CPOL = 0,为低电平。
从图中可以看出,当SCLK第一个下降沿时开始传输数据,一个时钟周期传输8bit数据,使用SPI0,按位传输,高位在前,低位在后。
树莓派
提供C语言与python例程
开启SPI接口
- 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择Interfacing Options -> SPI -> Yes 开启SPI接口
sudo reboot
请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查
安装库
默认情况下,树莓派 Raspbian 系统已经装好了必要的依赖。仅当编译不正常的时候,才需要手动安装这些函数库,否则请跳过这一段。
- 安装BCM2835, 打开树莓派终端,并运行一下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60/ sudo ./configure sudo make sudo make check sudo make install # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
- 安装wiringPi
sudo apt-get install wiringpi #对于树莓派4B可能需要进行升级: cd /tmp 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版本,如果没有出现说明安装出错
- python
sudo apt-get update sudo apt-get install ttf-wqy-zenhei sudo apt-get install python-pip sudo pip install RPi.GPIO sudo pip install spidev
硬件连接
LCD | Raspberry Pi (BCM) |
VCC | 3.3V |
GND | GND |
DIN | MOSI |
CLK | SCLK |
CS | CE0 |
DC | 25 |
RST | 27 |
BL | 24 |
下载例程
在树莓派终端运行:
apt-get install p7zip-full wget http://wiki.diustou.com/w/upload/4/4f/1.8inch-LCD_Module-Code.7z 7z x 1.8inch-LCD_Module-Code.7z sudo chmod 777 -R 1.8inch-LCD_Module-Code cd 1.8inch-LCD_Module-Code/RaspberryPi/
运行测试程序
- C语言
cd c make clean make sudo ./main
- python
cd python sudo python main.py
STM32
本例程是基于HAL库进行开发的,例程已经在XNUCLEO-F103RB上进行了验证。
点击此处下载代码或在资料中下载。
- 硬件连接
模块 | XNUCLEO-F103RB |
VCC | 3V3 |
GND | GND |
DIN | PA7 |
CLK | PA5 |
CS | PB6 |
DC | PA8 |
RST | PA9 |
BL | PC7 |
- 下载到开发板
打开STM32/STM32F103RBT6/lcd1in8-demo/MDK-ARM/lcd1in8-demo.uvprojx
编译并下载到开发板即可看到现象
Arduino
本例程已经在Arduino UNO上进行了验证。
点击此处下载代码或在资料中下载。
- 硬件连接
模块 | UNO |
VCC | 5V |
GND | GND |
DIN | D11 |
CLK | D13 |
CS | D10 |
DC | D7 |
RST | D8 |
BL | D9 |
- 下载到开发板
打开Arduino/LCD_Show/LCD_Show.ino
编译并下载到开发板即可看到现象
由于使用UNO PLUS开发板,其全局变量只有2Kb,因此提供的例程中没有图片显示的示范。
Jetson nano
安装库
安装函数库
- 打开终端界面,输入以下指令安装相应的函数库
sudo apt-get update sudo apt-get install python3-pip sudo pip3 install Jetson.GPIO sudo groupadd -f -r gpio sudo usermod -a -G gpio your_user_name sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && sudo udevadm trigger
【注意】your_user_name 是你使用的用户名
- 安装I2C
sudo apt-get install python-smbus
- 安装图像处理库:
sudo apt-get install python3-pil sudo apt-get install python3-numpy
下载程序
sudo apt-get install p7zip wget http://wiki.diustou.com/w/upload/4/4f/1.8inch-LCD_Module-Code.7z 7zr x 1.8inch-LCD_Module-Code.7z -r -o./1.8inch-LCD_Module-Code cd 1.8inch-LCD_Module-Code/JetsonNano/
运行测试程序
- C语言
cd c make clean make sudo ./main
- python
cd python sudo python main.py
选型列表
型号 | 分辨率 | 显示接口 | 面板材质 | 触摸类型 | 触摸接口 | 扬声器 | 音频输出 |
---|---|---|---|---|---|---|---|
0.96inch LCD Module | 80x160 | SPI | TFT | - | - | - | - |
1.3inch LCD HAT | 240x240 | SPI | IPS | - | - | - | - |
1.3inch LCD Module | 240x240 | SPI | TFT | - | - | - | - |
1.3inch OLED (B) | 128x64 | I2C/SPI | OLED(蓝色) | - | - | - | - |
1.44inch LCD HAT | 128x128 | SPI | TFT | - | - | - | - |
1.5inch RGB OLED Module | 128x128 | SPI | OLED(65K彩色) | - | - | - | - |
1.8inch LCD Module | 160x128 | SPI | TFT | - | - | - | - |
2.23inch OLED HAT | 128x32 | I2C/SPI | OLED(白色) | - | - | - | - |
2inch LCD Module | 320x240 | SPI | TFT | - | - | - | - |
3.5HD480320SR TFT LCD | 480x320 | HDMI | TFT | 电阻式 | SPI | - | 有 |
3.5HS480320SR TFT LCD | 480x320 | SPI (高速) | TFT | 电阻式 | SPI | - | - |
3.5inch HDMI LCD | 480x320 | HDMI | IPS | 电阻式 | SPI | - | 有 |
3.5inch RPi LCD (A) | 480x320 | SPI | TFT | 电阻式 | SPI | - | - |
4.3inch DSI LCD | 800x480 | DSI | IPS | 电容式 | I2C | - | - |
4HD480800SR IPS LCD | 800x480 | HDMI | IPS | 电阻式 | SPI | - | 有 |
4inch HDMI LCD | 800x480 | HDMI | IPS | 电阻式 | SPI | - | - |
4inch Resistive Touch LCD | 800x480 | 8080 | IPS | 电阻式 | SPI | - | - |
5HD800480SR TFT LCD | 800x480 | HDMI | TFT | 电阻式 | SPI | - | - |
5HD800480UC TFT LCD | 800x480 | HDMI | TFT | 电阻式 | USB | - | 有 |
5inch HDMI LCD | 800x480 | HDMI | TFT | 电阻式 | SPI | - | - |
7HD1024600UC IPS LCD | 1024x600 | HDMI | IPS | 电容式 | USB | - | - |
7HD1024600UCC IPS LCD | 1024x600 | HDMI | IPS | 电容式 | USB | 有 | 有 |
7HD800480UC TFT LCD | 800x480 | HDMI | TFT | 电容式 | USB | - | - |
7inch HDMI LCD (H) | 1024x600 | HDMI | IPS | 电容式 | USB | - | 有 |
Display (1024×600, 7inch, IPS, HD, C) | 1024x600 | HDMI | IPS | 电容式 | USB | - | - |
Display (1024×600, 10.1inch, IPS, HD, C) | 1024x600 | HDMI | IPS | 电容式 | USB | - | - |
Display (800×480, 5inch, TN, HD, C) | 800×480 | HDMI | TN | 电容式 | USB | - | - |