启用树莓派3的Uart

来源:互联网 发布:python 幂律分布 编辑:程序博客网 时间:2024/05/29 10:59

一、前言
下图是树莓派3的IO映射图,可以看到树莓派3 BCM码的14和15分别对应的是Uart的Tx和Rx。但是由于树莓派3板载了蓝牙,默认的情况下,该路的Uart被蓝牙占用,从而导致了我们正常情况下再Linux系统层无法对该路Uart IO进行读写操作。从而导致我们需要对外部的Uart设备进行通信时,显得力不从心,下面就来看看怎么从系统中解禁该路Uart。
树莓派3 IO映射图

二、启用Uart设备的具体步骤
0、该文档的验证系统环境为CentOS-Userland-7;在该系统中上述的Uart设备在系统中的映射为/dev/ttyAMA0
1、为了重新启用Uart,我们需要配置一下系统根目录下boot文件夹中的两个配置文件config.txt和cmdline.txt文件。
2、首先打开config.txt文件,在尾行追加以下两行:dtoverlay=pi3-miniuart-bt dtoverlay=pi3-disable-bt;
3、再打开cmdline.txt文件,在该文件中有关/dev/ttyAMA0有关的配置去掉;例如原cmdline.txt的文件内容为:dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait selinux=1 security=selinux enforcing=0修改后应为:dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait selinux=1 security=selinux enforcing=0
保存以上配置,重启后就可以对串口Uart设备进行正常的读写操作了。简单的说明一下以上的操作,在config.txt里面增加的那两行就是让系统启动时关掉蓝牙,将蓝牙占用的Uart解除。由于树莓派的许多设备的驱动挂载是基于设备树的机制,系统启动时会首先到overlay文件夹下找到相关的设备树文件(dtb)以此来启动设备。关于config.txt文件对设备的更多操作可以参考本博客文章《树莓派设备config文件配置README》。