树莓派与电脑串口互相通信进行数据传输的配置过程
步骤
1.将树莓派的硬件串口与mini串口默认映射对换
简单来说:硬件串口由硬件实现,有单独波特率时钟源,性能高,可靠,而mini串口要依附CPU内核提供时钟。因此我们要用硬件串口,但是树莓派3b的硬件串口默认连接的是蓝牙,所以我们要改一下,把蓝牙映射到mini串口上,而释放硬件串口。
首先查看有没有相关文件
命令行 cd /boot/overlays
可以看到有 README 和 pi3-miniuart-bt-overlay.dtb 或者是 pi3-miniuart-bt.dtb ,后面的缺了(overlay)但是在README中的解释是相同的,因此,认为是同一文件。如果没有的话,参考博客 给出链接点击 http://ukonline2000.com/wp-content/uploads/2016/03/ 下载。
README文件中说明了此文件的功能是将树莓派3的蓝牙切换到mini串口(ttyS0),并且恢复硬件串口(ttyAMA0)到GPIO14&15引脚中。
2.查看并修改串口映射关系
终端输入 ls -l /dev
红框里面表示串口映射,有的可能只显示1个,没关系,修改之后两个就都显示出来了。
现在来修改
命令行sudo nano /boot/config.txt
在该文件中加一行代码 dtoverlay=pi3-miniuart-bt
然后保存文件,重启树莓派。一定要保存然后重启。
然后我们再次查看 命令行 ls -l /dev 此时两个都有了并且对调了
可以看出,硬件串口(ttyAMA0)映射到了GPIO Tx(14) Rx(15) 引脚上。
3.禁用串口的控制台功能。
前面步骤已经交换了硬件串口与mini串口的映射关系,但是,现在还不能使用树莓派串口模块与电脑进行通信,因为,树莓派io口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派,而不是通信。所以我们要禁用此默认设置。
两个命令
sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service
然后命令行
sudo nano /boot/cmdline.txt
删除语句 console=serial0,115200
保存之后内容如下,有的可能不一样
然后重启树莓派,
至此,串口配置相关内容结束。