树莓派开发记录:
开发系统及代码编辑软件安装
1.通过安装软件Rasperry Pi Imager实现系统镜像流程化烧写进SD卡
2.在VScode官网选择相对应的基于树莓派ARM64或32架构的版本,下载相应的deb文件: sudo dpkg -i Desktop/code_1.60.2-1632316275_armhf.deb (替换为自己的路径)
3.在命令行中查看GCC版本: gcc -v
如果未安装gcc,通过命令行安装,先更新Unbuntu包列表: sudo apt-get update
接着安装linux下的GNU编译工具和GDB调试器: sudo apt-get install build-essential gdb
通过命令查看版本号: gcc --version
g++ --version
gdb --version
4.通过命令行在指定文件夹打开vscode: code .
关于树莓派串口库wiringpi的安装及串口配置
1.验证是否有该库:在命令行中输入命令gpio -v
,若输出wiringPi相关信息则说明已有该库
2.新建一个存放wiringPi源码的文件夹(mkdir work
),这里命名为work
3.进入刚刚建立的文件夹(cd work/
),并通过以下命令获取wiringPi源码
git clone https://github.com/WiringPi/WiringPi.git
(可能提示git无法识别,按提示对git工具安装即可)
如果发现git网站无法登入,可以直接在浏览器中进入下载相应的包,然后dpkg
安装
4.进入wiringpi文件夹(cd WiringPi/
),对其进行安装(./build
),安装完成后可再次查看gpio版本,并可查看所有引脚信息(gpio readall
)
5.下面开始修改串口引脚映射关系,sudo nano /boot/firmware/config.txt
进入配置文件中,在文件末尾添加enable_uart=1
,保存重启(sudo reboot
)
6.查看设备文件(ls -l /dev
),出现serial0和serial1则启用成功,接着在配置文件中继续添加dtoverlay=disable-bt
,并在终端中执行sudo systemctl disable bluetooth
以禁用蓝牙功能
7.重启设备再次查看设备文件,检查设备串口是否调换。4B型有多个串口,可用命令(dtoverlay -a | grep uart
)查看所有串口资源,用命令(dtoverlay -h uart0
)查看指定串口信息
8.若要启用其余所有串口,可进入配置文件中,添加
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5
重启即可生效
9.在编辑使用了wiringpi库函数的代码时,需要包含.h文件,并在编译链接时-lwiringPi
关于启用SSH服务并通过网线连接树莓派
1.ssh localhost
以判断是否安装SSH服务
2.sudo apt-get install openssh-server
安装该服务,通过ps -e | grep ssh
查看是否安装正常,sudo /etc/init.d/ssh start
#开始服务 sudo /etc/init.d/ssh stop
#停止服务sudo /etc/init.d/ssh restart
#重启服务
3.sudo nano /etc/rc.local
打开并编辑该文件,添加/etc/init.d/ssh start
并保存,可使得ssh服务开机启动
4.树莓派终端中输入hostname
,可得到当前主机名称
5.在已连接好网线的情况下,在windows的终端中输入ping '4中看到的主机名' -4,可判断连接是否正常,同时获得树莓派的IP地址
6.在putty中键入ip地址即可连接
7.上述IP可能是因特网中的IP,可能需要连在同一局域网中方可PING通,实际上在没有互联网时,可手动在树莓派的有线连接网络中更改IPv4地址同windows电脑上该
网线另一端ip地址到同一网段下即可PING通,如在树莓派中指定该网线连接为192.168.1.101
,在Windows中指定为192.168.1.100
,终端中输入ping 192.168.1.101
即可成功。
关于树莓派串口通讯速率的问题
1.由于树莓派串口电平为UART的ttl电平,因此需要额外的电平转换芯片,由此带来了通信波特率受限的问题,经查,转换芯片最高支持120kbps波特率,因此采用115200.
2.由于115200较921600更慢,在传输气动或者弹道等大数据量包时需要加RTsleep延时,以消去两端因时钟频率差异造成的数据传输问题,原921600波特率对应rtsleep(1),
此处修改为rtsleep(10)
,同时在树莓派端打印接收数据个数以实时监测传输。
关于设置树莓派频率的问题
1.安装cpufrequtils(sudo apt-get install cpufrequtils
)
2.设置CPU核心频率
(cpufreq-set -c 0 -f 1.5GHz
cpufreq-set -c 1 -f 1.2GHz
cpufreq-set -c 2 -f 900MHz)
3.调整CPU频率上下限
(cpufreq-set -d 频率下限
cpufreq-set -u 频率上限)
4.查看当前CPU运行频率(sudo cpufreq-info -w -m
)