2018年09月10日 11:33:31 观生生不息 阅读数:1422

    4.1 开启UART

    据官方所言(https://www.raspberrypi.org/documentation/configuration/uart.md):树莓派CPU内部有两个串口,一个PL001 UART和一个Mini UART。Mini UART没有时钟源,必须由内核提供时钟源,而内核频率本身是变化的,导致Mini UART速率不稳,无法正常使用。RPI ZERO W与以往老版本RPI不同,没有将PL011 UART分配GPIO中的UART(GPIO14和GPIO15),而是将其分配给了蓝牙模块。我们需要关闭蓝牙对PL011 UART的使用,恢复GPIO串口对PL011 UART的使用。

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图1

    查看映射关系:

    1. $ sudo ls -l /dev

    serial0是GPIO中的UART,ttyAMA0是PL001 UART。可以看到并没有serial0文件

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图2

    (1)修改cmdline.txt文件

    编辑cmdline.txt文件

    1. $ sudo nano /boot/cmdline.txt

    原来cmdline.txt文件的内容如下:

    1. dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=a05c3c8f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

    将有关console的内容全部删掉,修改后的cmdline.txt文件内容如下:

    1. dwc_otg.lpm_enable=0 root=PARTUUID=a05c3c8f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

    (2)关闭板载蓝牙

    禁用蓝牙功能

    1. $ sudo systemctl disable hciuart

    编辑config.txt文件

    1. $ sudo nano /boot/config.txt

    增加如下一行:

    1. dtoverlay=pi3-disable-bt

    重启树莓派

    1. $ sudo shutdown -r now

    再次查看映射关系,发现serial0成功映射到ttyAMA0

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图3

    (3)禁用串口的控制台功能

    编辑config.txt文件,增加如下一行:

    1. enable_uart=1

    也可以使用raspi-config自动操作:

    1. sudo raspi-config

    选择第五项

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图4

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图5

    开启硬件串口

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图6

    (4)重启树莓派

    1. $ sudo shutdown -r now

    4.2 测试

    (1)安装并导入serial模块

    1. $ sudo pip install pyserial

    如图所示模块导入成功:

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图7

    开启串口

    1. >>> ser = serial.Serial('/dev/ttyAMA0',19200)

    使用串口助手发送“hello”

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图8

    成功读取到串口助手发来的数据

    Raspberry Pi Zero W-4:串口(UART)的配置和使用 - 阿门的博客 - CSDN博客 - 图9