【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

系统位数

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

重新配置VNC
打开VNC


三、Qt下载与安装

3.1:Qt在线安装软件下载

Qt官网:https://www.qt.io/download-qt-installer-oss
Qt官网

3.2:安装Qt

首先:你要有一个账号用微软邮箱注册一个就可以了不过多的叙述了
其次:跟着步骤下一步下一步就OK了,在选择Qt的时候按你需求选择好具体用哪个版本
最后:安装即可
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输出

好了到这里基本就更新完毕了,本文张会持续更新,欢迎大家的相互讨论与学习!
希望在此基础上,同大家一块进步,节约配置时间与开发时间的成本!


— — Mr丶大君君 — —


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr丶大君君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值