设备清单:树莓派4b,USB TO TTL串口调试器,pc,串口调试助手,杜邦线
1.先来讲点干货:树莓派4b有两种类型的串口:分为硬件串口和软件串口
硬件串口(/dev/ttyAMA0),软件串口也称为mini串口(/dev/ttyS0)。其中硬件串口由硬件实现,有单独的波特率时钟源,可靠性很好,并且性能优良;而mini串口他的波特率受到内核时钟的影响,可靠性低。树莓派4b中,优良的硬件串口是分配给蓝牙模块使用的,而性能差的mini串口是分配给GPIO串口使用的。因此如果要运用到这个RX TX串口的时候我们的想法是恢复硬件串口与GPIO的映射关系,这样就可以通过GPIO使用高性能的硬件串口连接我们的串口设备。因此这就是大部分博主一上来就强调的需要对换映射关系。
但是我们树莓派4b是增加了四个硬件串口的,因此我们无需上面的禁用蓝牙功能。
先附上一张树莓派4b的引脚图,再展开阐述:
2. 配置树莓派的外设连接
2.1 手动下载deb包
wget http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200601_all.deb
2.2 解决依赖问题
sudo apt install lua5.1 libatopology2 libfftw3-single3 libsamplerate0 alsa-utils
会报错,这里定位不到这个软件包,可以把这个软件包去除掉,事实证明并不影响后续操作,也可以换源试试可不可以找到软件包
2.3 安装软件
sudo dpkg -i raspi-config_20200601_all.deb
2.4 运行raspi-config
sudo raspi-confi 会出现下面这个界面:
2.5 选择5,配置外设连接,再选择P6,打开串口
2.6 选择No,关闭串口登录功能,打开串口硬件调试功能
2.7 选择Yes,串口硬件使能
2.8下面这样就可以了
2.9 ok--finish即可
3. 树莓派4b新增的四个硬件串口,并且修改配置打开它
大部分推荐都是使用sudo nano /boot/config.txt
但是首先我的配置文件在/boot/firmware,其次用nano指令有点麻烦,我这边是直接进入root权限进行直接修改即可。
su
输入密码
cd /root/fireware
gedit config.txt
在内容末尾填写
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5
保存
sudo reboot 重启更改配置即可
4. 查看硬件串口是否可用
ls /dev/ttyA*
显示下图这样即可:
5. 这样串口与GPIO的对应关系就可以如下所示了:
GPIO14 = TXD0 -> ttyAMA0
GPIO0 = TXD2 -> ttyAMA1
GPIO4 = TXD3 -> ttyAMA2
GPIO8 = TXD4 -> ttyAMA3
GPIO12 = TXD5 -> ttyAMA4
GPIO15 = RXD0 -> ttyAMA0
GPIO1 = RXD2 -> ttyAMA1
GPIO5 = RXD3 -> ttyAMA2
GPIO9 = RXD4 -> ttyAMA3
GPIO13 = RXD5 -> ttyAMA4
原文链接:https://blog.csdn.net/AuroraSmith/article/details/126403497
6. 这样就可以简单通信了:用杜邦线将串口调试器与树莓派的地共线,串口调试器的RX接树莓派的TX,串口调试器的TX接树莓派的RX即可。
在树莓派上可以简单的下载一个mini串口通信工具sudo apt install minicom
在pc端可以下载一个比较好用的Xcom串口调试助手
在树莓派终端: sudo minicom -D 串口设备(例如:/dev/ttyAMA2) -b 波特率
注意:这里的串口设备一定要对应
填好串口号和波特率,打开串口
在单条发送,输入想要发送的数据
这样在树莓派的终端会收到发送的数据
这样就证明了,pc到树莓派的通信是可以的了。
然后在树莓派minicom窗口,ctrlZ 然后E(注意是大写),就可以在minicom输入对应的数字,在pc串口调试器会显示,证明两端通信成功了。