利用树莓派串口编程

关于树莓派串口编程的方法在之前的文章中已经介绍过了,本文的重点在于如何在树莓派中开启串口。

为什么树莓派还需要开启串口

首先我们要了解一下树莓派的部件设置,树莓派有两个串口,一个为硬件串口(UART),另一个为迷你串口(mini-uart). 在2代树莓派官方设计时都是将“硬件串口”分配给GPIO中的UART(GPIO14&GPIO15),因此可以独立调整串口的速率和模式,而3代,官方在设计时将硬件串口分配给了新增的蓝牙模块上,而将一个没有时钟源,必须由内核提供时钟参考源的“迷你串口”分配给了GPIO的串口,这样以来由于内核的频率本身是变化的,就会导致“迷你串口”的速率不稳定,这样就出现了无法正常使用的情况。
目前解决方法就是,关闭蓝牙对硬件串口的使用,将硬件串口重新恢复给GPIO的串口使用,也就意味着树莓派3的板载蓝牙和串口,只能二选一使用。

也就是说,如果我们想要使用树莓派的UART串口,就必须要关闭蓝牙。

stretch版本之前的设置

本文写作之时,树莓派官方的最新系统是stretch, 在网上收到的蓝牙关闭教程大多都是上一个系统版本jessis。对于jessis版本的设置,请自行google。本文只介绍相对比较简单的stretch版本。

开启硬件串口开关

首先要开启树莓派的硬件开关,具体的开启方法:
在terminal中输入raspi-config:

1
sudo raspi-config

弹出如下界面:
1
然后选择interface options

2
选择serial

3
选择No

4
选择Yes

关闭蓝牙模块

1
sudo systemctl disable hciuart

在/boot/config.txt 最后一行

1
dtoverlay=pi3-miniuart-bt

然后重启树莓派,然后ls -l /dev
5

能看到如上界面就说明串口设置成功。