树莓派使用上spi tft!(fbtft的使用)

2023-11-15

关于树莓派的视频输出除了HDMI和 VNC基本上没有其他的方法,如果你手上刚好有一块TFT模块的话就可以当做系统显示屏(framebuff),虽然分辨率不高,但足以满足一些cmd的需求。

github上项目:notro/fbtft,很好的实现了spi的tft屏幕显示framebuff。github地址:https://github.com/notro

老徐拉灯(另一个博主)早在2014年发了一篇博文讲述了直接编译进内核的方法http://blog.csdn.net/xdw1985829/article/details/39583239

PokeBox(另一个博主)也分享了另一种在线模块化的安装的方法:http://jingyan.eeboard.com/article/73720


博主也是参考了这两个前辈的博文才完成了这次实验的,本文也是根据这两篇博文重新排版编写的。虽然两篇博文使用的是早些年的RPI一代,但是经过博主的实验,对于现在的RPI3和(无论是完整版还是lite版)最新的系统(内核4.9)也是通用的,博主有两块RPI(RPIA+和RPI3)都可以用一样的办法将notro的fbtft使用起来。

    

 1.打开SPI

最新系统的SPI默认还是关闭的,需要在raspi-config中打开,在终端输入 :

sudo raspi-config

将spi接口enable就好了。


2:连接wifi或者你的以太网

这个有很多种方法,关于wifi连接这里给出一个简单的方法:

sudo nano /etc/network/interfaces

修改wlan0的配置,保存退出。

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "路由器名称"
wpa_psk "路由器密码"


3:下载和安装驱动

依次在终端输入cmd指令

sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update
sudo chmod +x /usr/bin/rpi-update
sudo REPO_URI=https://github.com/notro/rpi-firmware
sudo rpi-update

4:硬件连线

如果安装了wiringPi的话可以使用指令:

gpio readall
查看GPIO口,这里我们使用的是BCM的编号(最边两列的编号)

对应的TFT接口:

接口分别有:

VCC-> 接电源(3.3V 有些可以接5V)

GND-> 接地线(0V)

NC-> 不接(无意义)

CLK-> SPI时钟,接SCLK(BCM11引脚)

SDA-> SPI数据,接MOSI(BCM10引脚)

RS-> 指令控制口,可以随便接一个GPIO口(我这里接BCM24引脚)

RST-> 复位,可以随便接一个GPIO口,也可以直接接VCC(3.3V)(我这里接BCM23引脚)

CS-> 片选口,可以随便接一个GPIO口,也可以直接接GND(0V)(我这里接0V)


当然,你手上的屏幕引脚丝印也有可能对不上号,不过基本都是一致的,比如有:DC(也就是RS),SDA(也就是SDO),SCL(也就是CLK),CE(也就是CS),也有可能有LED、BL这样的背光接口,直接接VCC,也就是3.3V好了。


5:屏幕初始化

初始化也就是加载驱动,驱动名字叫做 fbtft_device

sudo modprobe fbtft_device name=adafruit18 gpios=reset:23,dc:24 speed=16000000


参数name指的是屏幕驱动IC的型号,博主使用的驱动的是型号是st7735r,对应的name就是afruit18,其他型号的别称请对照https://github.com/notro/fbtft/blob/master/fbtft_device.c

参数gpios是用于设置其他IO的,硬件上reset连接了BCM23,所以这里就填写gpios=reset:23,同理还可以设置dc和led(背光)接口,speed设置的是spi总线速度,一般不要超过32M就行。

还有其他参数eg:rotate 翻转,fps 刷屏率,可以参考https://github.com/notro/fbtft/wiki/fbtft_device

如果输入指令后屏幕变黑了,那么恭喜你,这就代表屏幕被成功的驱动了,已经完成了80%的进度了!(最怕就是没有驱动或者初始化不成功)

如果没有你的IC驱动可以尝试使用init参数手动初始化。

输入:

con2fbmap 1 1
显示终端(lite系统)

FRAMEBUFFER=/dev/fb1 startx
显示图形界面(完整版系统)
效果如图,这是fb1的图像。



如果需要卸载驱动,指令:

rmmod fbtft_device

(下面操作可有可无)

6:复制fb0的内容到fb1上

新系统没有git和cmake,所以先需要安装一下:

sudo apt-get install git cmake
然后依次下载安装项目   https://github.com/notro/fbtft/wiki/Framebuffer-use#framebuffer-mirroring
git clone https://github.com/tasanakorn/rpi-fbcp
cd rpi-fbcp/
mkdir build
cd build/
cmake ..
make
sudo install fbcp /usr/local/bin/fbcp

启动:fbcp &

关闭fbcp:killall fbcp


7:添加启动脚本

关于添加启动脚本的方法有很多,比如在/etc/rc.local 添加,这个是启动系统和自动加载脚本,这里提供一种登录后加载脚本的方法 ~/.bash_login,两种方法应用场合有所不同。博主更加推荐使用.bash_login 脚本+自动登录的方法。

同理,进入设置自动登录,博主用的是lite版本,只能自动登录并进入终端。

sudo raspi-config


然后编写脚本

sudo nano ~/.bash_login
编写cmd指令即可:
sudo modprobe fbtft_device name=adafruit18 gpios=reset:23,dc:24 speed=16000000
su -l pi -c "env FRAMEBUFFER=/dev/fb1 startx &"
或者
su -l pi -c "env con2fbmap 1 1 &"









本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派使用上spi tft!(fbtft的使用) 的相关文章

  • 用树莓派搭建远程实时画面传输

    目录 一 材料准备 二 环境搭建 1 树莓派实现局域网监控画面传输 1 树莓派安装系统 2 将摄像头与树莓派连接 3 配置树莓派开发环境 4 让摄像头开始进行画面录制 5 将监控画面服务设置为开机自启 2 内网渗透 1 服务器端frp配置
  • 如何使用树莓派连接电脑无线网络热点并查看树莓派ip地址

    1 确保电脑已经联网 在电脑右下角点开 网络连接 打开 无线热点 右键转到 设置 2 查看 热点名称和密码 并确保网络频率为2 4GHz 树莓派现时只支持802 11 n的WIFI标准所以只能连接2 4G网络 所以你需要确保你所连接的是2
  • 树莓派3B+安装Raspbian简易教程

    刚买的树莓派3B 没过一周 树莓派4就出来了 不过算了 基本上用起来差不多 所以大家继续看吧 最近有点忙 所以就不BB了 直接上主题 下载Raspbian Raspbian是树莓派的官方系统 推荐大家使用 如果不喜欢它的话 可以自己安装Ub
  • 【树莓派】error: command ‘/usr/bin/arm-linux-gnueabihf-gcc‘ failed with exit code 1(已解决)

    输入以下命令 export CFLAGS fcommon pip3 install RPi GPIO 参考网址 https askubuntu com questions 1290037 error while installing rpi
  • 毕业设计 树莓派+云平台实时室内环境监测系统

    文章目录 0 前言 1 简介 2 主要器件 3 DHT11温湿度传感器 4 具体实现 5 部分代码 5 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学
  • 树莓派 GPIO口控制双色LED灯

    目录 一 首先加载库 二 设置编码规范 三 去除GPIO口警告 四 进行详细编程 五 程序源码 GPIO General Purpose I O Ports 意思为通用输入 输出端口 通过它们可以输出高低电平或者通过它们读入引脚的状态 是高
  • 基于树莓派的python界面开发实例教程

    基于树莓派的python界面开发实例教程 环境测试 添加label实例 时钟程序 添加天气 环境测试 点击树莓派的开始菜单 找到programming Python3 IDLE 点击打开 打开后如下 在home pi下面建立home pi
  • 树莓派开启 wifi 热点

    树莓派小巧的体型当然不是为了固定放在桌子上 更是为了做成可移动的智能设备 例如智能小车 当树莓派不在室内的 wifi 下时 怎样方便地连接上它呢 于是想要把树莓派变成 wifi 热点 就能用我们的手机或者笔记本连接它了 一 修改 etc n
  • 树莓派4b串口设置教程(适用于新手)

    树莓派4b串口设置教程 适用于新手 树莓派4b串口配置 适用于新手 本人也是刚刚学习了树莓派 考虑到目前入坑的像我一样的小白比较多 所以我整理了一下前辈们的各种经验 准备针对树莓派4b这款最新的产品 做一个比较详细简单的串口配置介绍 1 基
  • Raspberry Pi Zero 单板配置手记(四)调整 TF 卡分区大小的不同方式

    RPi Zero 调整 TF 卡分区大小的不同方式 本文章为系列文章 Raspberry Pi Zero 单板配置手记 的第四篇 上一篇为 Raspberry Pi Zero 单板配置手记 三 使用 NetworkManager 管理网络连
  • 【自我提高】树莓派GPIO的几种语言控制方法 python 篇

    使用 python 语言控制 GPIO 18 首先知道树莓派外置IO的关系对照表 我这里的树莓派是 PI 3B V1 2 关系对照表如下 首先安装 python 和 GPIO 库 具体安装过程参考 https blog csdn net w
  • 树莓派使用上spi tft!(fbtft的使用)

    关于树莓派的视频输出除了HDMI和 VNC基本上没有其他的方法 如果你手上刚好有一块TFT模块的话就可以当做系统显示屏 framebuff 虽然分辨率不高 但足以满足一些cmd的需求 github上项目 notro fbtft 很好的实现了
  • 树莓派修改国内软件源

    编辑sources list文件 sudo nano etc apt sources list 注释掉现有的代码 新增以下代码 deb http mirrors tuna tsinghua edu cn raspbian raspbian
  • linux创建链接命令

    1 软链接 符号链接 1 软链接文件有类似于Windows的快捷方式 2 在符号连接中 文件实际上是一个文本文件 其中包含的有另一文件的位置信息 3 它只会在你选定的位置上生成一个文件的镜像 不会占用磁盘空间 linux创建链接软命令 具体
  • 玩转树莓派 一、为你的树莓派烧录系统镜像

    准备工作 1 一台烧录镜像用的电脑 Windows Mac Linux 2 树莓派 3 显示器 高清连接线 根据不同型号需要不同的接口 4 键盘鼠标 5 Micro SD 读卡器 Micro SD 卡 16 128G 6 网线 不使用wif
  • 怎么把树莓派连接到电脑上(基于window10)

    我相信对于刚玩树莓派的新手来说 尤其是没有带显示屏的同学来说 四处碰壁 可能出现的原因有很多种 ssh登录不上 wifi连接不上 内存不足 很多问题 而对于更多新手来说 如何给树莓派连接网络更是关键 今天我给大家讲一下如何用树莓派连接电脑
  • 如何修改文件权限

    改变文件权限的两种方法 第一种 符号 sudo chmod 文件身份 操作符 权限符号 文件档案或目录 文件的四种身份 u user文件所有者 g group 文件所属群组 o other 其他拥有者 a all 全部身份 操作符的三种类
  • electron-vue 树莓派armv7l打包踩坑记录

    1 unsupported arch arm 报错 Unsupported arch arm failedTask build stackTrace Error Unsupported arch arm 解决办法 在package json
  • 用于Arduino的S4A图形化编程图文详解

    文章结构 1 说明 2 实操 2 1 S4A安装 2 2 Arduino IDE 安装 2 3 下载S4A的固件 2 4 连接 2 5 刷入S4A固件 2 6 打开S4A并测试 3 附录 Uno引脚图 1 说明 作者还拥有个人公众号 会写一
  • 树莓派4B安装详细教程,从零开始!

    树莓派4B安装详细教程 从零开始 前言 一 准备材料 1 硬件材料 2 软件材料 二 安装步骤 1 格式化SD卡 2 安装系统 三 安装完成 前言 提示 本文详细介绍树莓派4B的安装流程 适合刚入手树莓派的同学 认为我写的好的同学希望点赞关

随机推荐

  • 微信公众平台开发调试方法

    在这篇微信公众平台开发教程中 我们将介绍如何进行微信公众平台上的开发调试方法 一 方倍微信调试器 微信调试器是方倍工作室开发的用于微信公众平台接口开发调试的工具 具有Token校验 模拟关注及取消关注 发送文本 图片 语音 视频 位置 链接
  • oracle 基础:表操作

    创建表 示例 CREATE TABLE 表名称 字段名 类型 长度 primary key 字段名 类型 长度 修改表 增加字段 ALTER TABLE 表名称 ADD 列名 1 类型 DEFAULT 默认值 列名 2 类型 DEFAULT
  • MYSQL--基础--05--binlog日志文件过大

    MYSQL 基础 05 binlog日志文件过大 1 Mysql binlog 介绍 mysql binlog是MySQL数据库的二进制日志 用于记录用户对数据库操作的SQL语句 除了数据查询语句 信息 如果mysql 运行很长一段时间 日
  • 汇编语言aaa指令解析,aas指令解析

    aaa指令本质上是将相加后的结果拆成两个部分 拆成非压缩BCD码的形式 下面进行举例介绍 1 ah 0 al 06h bl 09h 执行指令add al bl得ah 01h al 05h aaa的作用就是将相加后al中的结果15拆分成两部分
  • python-opencv对极几何 StereoRectify

    OpenCV如何正确使用stereoRectify函数 函数介绍 用于双目相机的立体校正环节中 这里只谈谈这个函数怎么使用 参数具体指哪些 函数参数 随便去网上一搜或者看官方手册就能得到参数信息 但是 相对关系非常容易出错 这里详细解释一下
  • 电脑提示vcruntime140_1.dll缺少怎么办?

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个vcruntime140 1 dll文件进行安装
  • Alpaca构建方式探秘:低成本构造指令数据增强LLM

    官方介绍 Alpaca A Strong Replicable Instruction Following Model github地址 https github com tatsu lab stanford alpaca Alpaca简介
  • 【STL】list容器的插入与删除

    STL list容器插入与删除 添加或插入新元素 list成员方法 push front 向 list 容器首个元素前添加新元素 push back 向 list 容器最后一个元素后添加新元素 emplace front 在容器首个元素前直
  • 基于LSTM、BP神经网络实现电力系统负荷预测(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 2 1 LSTM 2 2 BP 3 Python代码及数据 4 参考文献 1 概述 前馈神经
  • JavaSE加强知识

    tips 在Java中 万物皆对象 不然我们的Java就白学了 本栏文章我们将会陆续上传以下知识 static 单例 代码块 继承 面向对象五大金刚 成员变量 方法 代码块 构造器 内部类 权限修饰符 抽象类 接口 多态 内部类 常用API
  • DDR3 终端参考电阻 rzq

    https blog csdn net chenzhen1080 article details 82951214 问题1 ddr3侧 的参考电阻和 FPGA侧 的参考电阻是不是同一个功能 同一个阻值 DDR3 器件上 要标配 240 参考
  • SGMD辛几何模态分解

    将时间序列分解为一组独立的模态分量 模态混叠情况大幅度降低 SGMD利用辛几何相似度变换来求解哈密顿矩阵的特征值 并利用其 相应的特征向量来重构单分量信号 同时 SGMD可以在没有任何用户定义参数的情况下 有效地重构现有的模式 去除噪声 该
  • Halcon中数据的四舍五入、取整、有效数字以及和字符串之间的转换

    a 3 456 取整 取最近的整数 int a int a 取整数部分 结果是3 round a round a 将输入元组转换为最接近的整数元组 结果是3 四舍五入 结果是字符串 g0 a 0f 保留0位 结果是 3 g1 a 1f 保留
  • js延迟操作

    在写前端代码的时候需要实现某些交互操作 有些效果需要停顿几秒再实现 这时可以用到下面的方法 setTimeout function 5秒后实现的方法写在这个方法里面 5 1000 延迟5000毫秒
  • 第15届全国大学生知识竞赛 2022ciscn初赛 部分wp

    Misc ez usb 1 键盘流量 USB协议数据部分在Leftover Capture Data域中 数据长度为八个字节 其中键盘击键信息集中在第三个字节中 如图 发现击键信息为0x06 即对应的按键为C 2 鼠标流量 USB协议鼠标数
  • 并发编程-Linux环境下C语言并发理解-一

    在centos7上安装gcc 使用yum命令安装还是非常easy的 yum y install gcc gcc c kernel devel 安装gcc c 编译器以及内核文件 使用VI工具编写如下代码 include
  • openssl命令基础用法:哈希

    单向加密需要使用的标准命令为 dgst 用法如下 openssl dgst md5 md4 md2 sha1 sha mdc2 ripemd160 dss1 c d hex binary out filename sign filename
  • 微信小程序项目:粤语教学平台-粤言粤语

    文章目录 1 项目简介 1 1 创意来源 1 2选题意义 2 总体设计 2 1 系统功能 2 1 1 功能概述 2 1 2 功能说明 2 2 系统软硬件平台 2 3 关键接口技术 2 4 作品特色 3 详细设计 3 1 系统结构设计 3 1
  • error C2666: “QByteRef::operator ==”: 2 个重载有相似的转换

    出现这样的问题 就是语法出现问题 以下写就是错的 以下写的就是解决了问题
  • 树莓派使用上spi tft!(fbtft的使用)

    关于树莓派的视频输出除了HDMI和 VNC基本上没有其他的方法 如果你手上刚好有一块TFT模块的话就可以当做系统显示屏 framebuff 虽然分辨率不高 但足以满足一些cmd的需求 github上项目 notro fbtft 很好的实现了