1期 树莓派4B问题总结-Qt6安装-GPIO控制
一、树莓派镜像安装
前言:这部分内容包含了树莓派烧入软件下载,系统下载与制作
1.1:树莓派镜像软件下载
树莓派镜像下载软件链接:
https://www.raspberrypi.com/software/.
1.2:树莓派烧入镜像准备工作
首先你要有一张TF内存卡、读卡器
当然速度越快越好 8G以上最佳
读卡器插入电脑: 选择好你所需要的系统,版型,制作U盘后就可以下载了
下载镜像完成后: 将读卡器插入树莓派,这时系统就能正常开机运行了(我这里只说有显示器、hdmi线的)没有的就自己想办法,也可以使用vnc远程连接。具体配置不赘述了。
1.3:树莓派镜像软件使用
二、树莓派系统更新与换源
2.1:系统更新
sudo apt-get update
sudo apt-get upgrade
2.2:换源
- 2.2.1:检查自己的版本(10-11-12版本不同换的源也不同)
sudo lsb_release -a
- 2.2.2:查看自己的系统架构
sudo uname -a
- 2.2.3:查看自己系统位数
sudo getconf LONG_BIT
- 2.2.4:登录debian镜像站
清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/help/debian/
- 2.2.4:换源
打开 sources.list 将刚才复制的内容替换上去即可
sudo nano /etc/apt/sources.list
不知道进入到nano后怎么操作的看这里:ctrl+o 保存一下 ctrl+x退出 输入Y 回车
- 2.2.5:换源后更新
sudo apt-get update
sudo apt-get upgrade
2.2:VNC远程连接配置
- 2.2.1:更新源
sudo apt-get update
- 2.2.2:安装vnc
sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer
- 2.2.3:重新打开vnc
sudo raspi-config
三、Qt下载与安装
3.1:Qt在线安装软件下载
Qt官网:https://www.qt.io/download-qt-installer-oss
3.2:安装Qt
首先:你要有一个账号用微软邮箱注册一个就可以了不过多的叙述了
其次:跟着步骤下一步下一步就OK了,在选择Qt的时候按你需求选择好具体用哪个版本
最后:安装即可
四、安装GPIO控制所需要的库:WiringPi
因为我是4B的板子没办法使用网上直接下载的wiringpi 因为他的版本是2.5 我需要2.5以上的版本所以我下载了3.0以上的
我现在列举两个方案,当然我是第二个方案成功的
4.1:两种下载方案
- 4.1.1:方案1 - 官方下载 (不过多赘述直接上代码)
//首先进入到tmp文件夹中
sudo cd /tmp
//其次开始下载官方的库
sudo wget https://project-downloads.drogon.net/wiringpi-latest.deb
//最后安装
sudo dpkg -i wiringpi-latest.deb
当然我没成功其中的原因我基本已经找到了,如果现在让我使用这个方法我觉得我还是能成功的,一会结尾说问题解决办法。
- 4.1.2:方案2 - github下载
//更新
sudo apt-get update
//下载git
sudo apt-get install git
//查看版本
sudo git --version
git下载完成就开始拉取wiringpi
//首先进入到tmp文件夹中
sudo cd /tmp
//其次开始下载git的库
sudo git clone https://github.com/WiringPi/WiringPi.git
//下载完后进入文件夹 /WiringPi 当然你这会在/tmp中别忘了,别走错了,走错了我也救不了你
sudo cd /WiringPi
//开始运行build
sudo ./build
- 4.1.3:查看gpio版本
上述操完成不论是方法一还是方法二
都进行下面这步:如果你有版本恭喜你安装成功,如果没有就跟我继续往下走
sugo gpio -v
- 4.1.4:无gpio版本 - 安装失败看这里
首先看报错是什么,我当时报错内容是(缺少libctpy.o.1) - 我第一想法是安装这个库
sugo apt-get install libctpy1
但是等我安装完成后再次:sudo ./build
安装后还是出现缺少这个库,我意识到问题不对劲了。我开始搜所这个库
sugo find / -name libctpy.o.1
我发现我有这个库位置在:/usr/lib/arrch_某某xx/libctpy.o.1
我把这个创建符号链接到我得系统库目录/usr/lib就好了 - 问题就迎刃而解了
sugo ln -s /usr/lib/arrch_某某xx/libctpy.o.1 /usr/lib/libctpy.o.1
更新动态链接器
sugo ldconfig
4.2:wiringpi库的使用
//控制台使用:
sudo gpio mode 0 IN //0号引脚 输入
sudo gpio mode 0 OUT //0号引脚 输入
//写入
sudo gpio write 0 0 //0号引脚:低电平
sudo gpio write 0 1 //0号引脚:高电平
//读取
sudo gpio read 0 //读取0号引脚状态
//读取所有引脚信息
sudo gpio readall
五、Qt引用WiringPi库控制GPIO
如果你使用了以上的全部方法,发现qt没有办法正常的引用LIBS += -lwiringPi
那就对了,因为你还需要添加lib到环境变量
注*
首先查看你的wiringpi的头文件和库在哪里 一般情况会在/usr/local/lib 与 /usr/local/include 这两个地方大家就自己去看吧
//打开环境变量文件
sudo nano ~/.bashrc
//打开环境变量后结尾处添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export CPATH=$CPATH:/usr/local/include
//以上两句添加完成后 ctrl+o保存 ctrl+x退出 y同意 随后让环境变量生效
sudo source ~/.bashrc
验证是否添加成功
sudo echo $LD_LIBRARY_PATH
sudo echo $CPATH
以上内容操作完成,你就可以去打开QT添加你的wiringpi库了!
//如果上述内容还是不行,那么你就用完整的路径去链接你的库,简单且暴力
LIBS += -L/usr/local/lib -lwiringPi
下面为QT控制GPIO引脚简单操作,大家可自行查看
//.pro文件中引入库:
LIBS += -lwiringPi
//如果库连接不到就是用绝对路径,高效暴力
LIBS += -L/usr/local/lib -lwiringPi
//头文件 引用
#include <wiringpi.h>
//初始化与简单设置模式读写
wiringPiSetup(); //初始化树莓派
pinMode(1,OUTPUT); //设置1号引脚为输出
digitalWrite(1,HIGH); //'HIGH'代表高电平,相当于1,’LOW‘则为低电平,相当于’0‘
digitalRead(1,LOW); //'HIGH'代表高电平,相当于1,’LOW‘则为低电平,相当于’0‘
//时间函数
delayMicroseconds(unsigned int howLong); //微妙延迟 最大71分钟
delay (unsigned int howLong); //毫秒延迟最大79天
unsigned int millis (void); //返回毫秒
unsigned int micros (void); //返回微妙
//PWM输出 引入头文件
#include <softPwm.h>
softPwmCreate (1, 0, 100); // 设置GPIO.1为PWM输出
softPwmWrite(1,val); // 输出占空比为val/100的pwm波
softPwmStop(pwm_pin); //停止PWM输出
好了到这里基本就更新完毕了,本文张会持续更新,欢迎大家的相互讨论与学习!
希望在此基础上,同大家一块进步,节约配置时间与开发时间的成本!