背景
在我们使用树莓派做开发的时候,有些场景下需要屏幕显示,可以选择HDMI屏幕,也可以选择SPI接口的屏幕。HDMI屏幕驱动简单,即插即用,但是成本高,相比较SPI屏幕硬件成本低,GPIO插座连接方便,安装好相应的驱动,使用起来性价比最高。
我是在使用zero制作游戏掌机retropie过程中学习和实现了SPI TFT驱动,现在记录下来,希望给喜欢折腾的童鞋们参考。
树莓派SPI接口介绍
树莓派40 pin GPIO接口中有硬件的SPI接口(19,21,23,24),我们可以用来连接SPI TFT屏幕,我手里一块2.8寸ili9341驱动的TFT屏幕。
fbtft驱动应用
fbtft驱动使用的是SPI硬件资源进行显示framebuffer输出,稳定但是FPS相对偏低,因为树莓派本身SPI的频率限制在30Mhz左右,驱动效果大约20fps左右,所以用来显示静态图片或者适用刷新率不高的场合。
参考Git教程https://github.com/goodtft/LCD-show
1.raspberry官方镜像在2021/11后的版本默认自带fbtft驱动了,但是需要手动开启加载
2.检查/boot/overlays/,如果没有,复制进去fbtft.dtbo(文件会放文章末尾)
3.检查/etc/modules 是否有以下模块,没有的话添加进去
spi-bcm2835
flexfb
fbtft_device
4.添加自启动配置,在boot config文件配置/boot/config.txt增加以下行加载TFT驱动,相同的配置不需要重复添加,需要确定TFT屏幕的正确的reset pin, dc pin,不然点不亮
hdmi_force_hotplug=1
dtparam=