树莓派 2.8寸 ili9341 tft lcd spi 屏幕显示

结果展示

本人B站相关视频链接:链接地址
https://www.bilibili.com/video/BV1L5411u7n1

  1. 显示命令行的效果喜人
    在这里插入图片描述
  2. 我把树莓派0w通过胶枪打胶贴到显示屏的背部,感觉还不错,稍后我把线焊一下,管脚减短些更清爽,现在整体是这样的:
    在这里插入图片描述
  3. 淘宝店家的显示屏截图是这样的,我专门买的ili9341,因为网上的资料全
    在这里插入图片描述

2.8寸屏幕仅展示命令行玩法

在这里插入图片描述

配置说明

  1. 我使用的树莓派系统是:2017-11-29-raspbian-stretch.img
  2. 接线,我参考的LOVE DOTNET的《树莓派研究笔记(9)-- 树莓派SPI连接TFT屏幕
  3. 打开SPI,参考DevinTT的《树莓派使用上spi tft!(fbtft的使用)》,我这里不专门写了。
    1. 关键命令:sudo raspi-config
    2. 选项路径:Interfacing Options - > SPI - > Yes
  4. 参考第1步提到的参考材料,生成fb1(即是framebuffer1,这个tft屏幕就可以当做是fb1了),执行以下命令,lcd的灯会亮,如果是白天的话亮的不明显。所以最好在暗处观察
    sudo modprobe fbtft_device name=rpi-display gpios=reset:25,dc:24,led:18 rotate=90 fps=50 speed=65000000
    
  5. 参考athuhu0321的《树莓派开发系列教程10——树莓派spi液晶屏支持(fbtft)》,Console(可以理解为命令行)显示在fb1上,我觉得展示命令行更有趣一些
    1. 如果想要lcd展示命令行,需要先将树莓派的启动界面,改为启动进入命令行才行,这步非常重要。(我试过,树莓派启动进入桌面,无法使用指令让树莓派在lcd上展示命令行,而是,使用指令了之后,lcd一点反应都没有),改动方式见下:
    sudo raspi-config
    选择路径为:Boot Options -> Desktop/CLI ->Console AutoLogin (表示自动进入pi用户)
    选择完成后,使用指令重启: sudo reboot
    
    1. 大显示器(非我们的2.8寸lcd小屏幕)接入树莓派的hdmi口,重启完成后,发现树莓派直接进入了命令行,而不是桌面,继续使用下列指令
    先使用命令生成fb1:sudo modprobe fbtft_device name=rpi-display gpios=reset:25,dc:24,led:18 rotate=90 fps=50 speed=65000000
    再使用命令,将命令行界面映射到fb1上:con2fbmap 1 1
    
    1. 搞定!

设置启动就在2.8寸lcd屏幕上进入命令行

思路:

  1. 用户登入linux系统,linux系统会首先加载用户家目录下的.bashrc文件
  2. 树莓派每次默认自动登入pi用户。(可以使用sudo raspi-config指令,选项路径Boot Options->DeskTop / CLI 下选择pi的登入选项)
  3. 所以,只要改动pi用户家目录下的~/.bashrc文件,在文件末尾追加启动需要执行的命令即可。
  4. 追加的命令如下
sudo modprobe fbtft_device name=rpi-display gpios=reset:25,dc:24,led:18 rotate=90 fps=50 speed=65000000
con2fbmap 1 1
  1. 实际验证,并不行,我猜:可能是sudo modprobe ***** 这句指令执行需要部分时间,到con2fbmap指令执行时,fb1还没创建出来
  2. 所以应该这样配置,在/etc/rc.locatl文件中追加sudo modprobe *****配置,在~/.bashrc文件中追加con2fbmap 1 1搞定
    1. /etc/rc.locatl是linux系统启动加载文件,加载主体是root用户,所以追加的执行无需带sudo,但是vi这个文件需要带sudo,指令如下
    sudo vi /etc/rc.local
    在文件末尾,exit 0内容之前,追加以下内容:
    modprobe fbtft_device name=rpi-display gpios=reset:25,dc:24,led:18 rotate=90 fps=50 speed=65000000
    
    1. 在~/.bashrc文件末尾,追加以下内容:
    vi ~/.bashrc
    追加以下内容:
    con2fbmap 1 1
    
    1. 重启,这之后,即使不带hdmi显示器,也可以在这个小lcd上展示命令行了

2.8寸屏幕仅展示linux桌面玩法

在这里插入图片描述

经过以上内容的洗礼,这个就简单多了

  1. 非常重要,修改启动加载桌面(而不是启动加载命令行),这样应该是使树莓派在启动的时候,就加载桌面组件,才能在hdmi或者2.8寸lcd这样的桌面UI输出设备上进行显示,使用以下指令:
    sudo raspi-config
    选择路径为:Boot Options -> Desktop/CLI ->Desktop AutoLogin (表示自动进入pi用户)
    选择完成后,使用过指令重启: sudo reboot
    
  2. /etc/rc.locatl文件先加入fb1初始化的内容:
    sudo vi /etc/rc.local
    在文件末尾,exit 0内容之前,追加以下内容:
    modprobe fbtft_device name=rpi-display gpios=reset:25,dc:24,led:18 rotate=90 fps=50 speed=65000000
    
  3. 新增文件,特别注意,加入以下内容之后,hdmi接口在重启之后,就不输出了,而是通过fb1(2.8寸)屏幕进行输出:
    sudo vi /usr/share/X11/xorg.conf.d/99-fbdev.conf
    写入以下内容:
    Section "Device"  
      Identifier "myfb"
      Driver "fbdev"
      Option "fbdev" "/dev/fb1"
    EndSection
    
  4. 在命令行,使用以下命令,就可以在2.8寸lcd屏幕上显示桌面。
    startx
    
  5. 或者,在新增好/usr/share/X11/xorg.conf.d/99-fbdev.conf文件之后,直接在2.8寸lcd的命令行中(看上一章节:2.8寸屏幕仅展示命令行玩法),直接使用startx命令,就可以在2.8寸lcd中进入桌面,方便快捷。
  6. 按以上方式配置了之后,启动就直接不在hdmi接口上输出了(即使接了hdmi屏幕也不输出),而是在2.8寸lcd上输出。如果要回复输出到hdmi上,只能将新增的这个配置文件/usr/share/X11/xorg.conf.d/99-fbdev.conf删除,并重启树莓派(或者使用startx指令),就可以在hdmi上输出了。反正要么2.8寸lcd输出,要么hdmi输出。不可兼得。(如果既想在hdmi上输出,又想在2.8寸lcd上输出,参考athuhu0321的《树莓派开发系列教程10——树莓派spi液晶屏支持(fbtft)》中的fbcp部分)
  • 5
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
控制TFT显示屏需要用到树莓派的GPIO口和SPI接口,具体步骤如下: 1. 确认TFT屏幕的型号和SPI接口引脚: 首先需要确认TFT屏幕的型号和SPI接口引脚,然后将其与树莓派上的对应引脚连接。不同型号的TFT屏幕可能使用不同的SPI接口引脚,需要根据具体型号进行设置。 2. 开启树莓派SPI接口: 打开树莓派终端,运行以下命令开启SPI接口: ``` sudo raspi-config ``` 进入界面后,选择“5 Interfacing Options”,然后选择“P4 SPI”,最后选择“Yes”启用SPI接口。 3. 安装SPI库: 在终端中输入以下命令安装SPI库: ``` sudo apt-get install python-dev python-pip sudo pip install spidev ``` 4. 编写Python程序: 在树莓派上使用Python编写控制TFT显示屏的程序,具体步骤如下: - 导入SPI库和TFT显示屏相关的库: ```python import spidev import Adafruit_ILI9341 import Adafruit_GPIO as GPIO ``` - 设置SPI接口: ```python spi = spidev.SpiDev() spi.open(0, 0) spi.max_speed_hz = 40000000 spi.mode = 0b00 ``` - 初始化TFT显示屏: ```python dc = 24 rst = 25 cs = 8 gpio = GPIO.get_platform_gpio() screen = Adafruit_ILI9341.ILI9341(spi, cs=cs, dc=dc, rst=rst, gpio=gpio) ``` - 在显示屏上显示文本: ```python screen.draw_text(x, y, text, color, bg) ``` - 在显示屏上显示图像: ```python from PIL import Image image = Image.open("image.jpg") screen.display(image) ``` 5. 运行程序: 在终端中输入以下命令运行Python程序: ``` sudo python program.py ``` 这样就可以通过树莓派控制TFT显示屏进行文本和图像的显示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值