Raspberry 4B 串口

本文详细介绍了如何在树莓派4B上启用额外的4个硬件UART,包括配置步骤、GPIO映射以及提供了一个使用Python的示例程序,展示了如何通过串口进行通信。
摘要由CSDN通过智能技术生成

一. 前言

相比树莓派零、1、2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4B 中新增了 4 个 PL011 串口共计有 6 个 UART。

6个UART,其中5个是硬件UART。可以使用这5个硬件UART稳定地与外部的设备进行通讯。

二. 打开另外4路串口

 2.1 查看4B上所有的串口资源

2.2 查看某个串口的信息

 2.3 开启另外4路硬件UART

执行命令

sudo gedit /boot/config.txt

在config.txt文件的最下方加入4行

dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5

然后"ctrl+s"保存文件, 执行sudo reboot重启树莓派,使修改生效。

 2.4 查看配置是否生效

可以看到,有5个硬件UART。

各个UART与GPIO的对应关系: 

(BCM)GPIO14 = TXD0 -> ttyAMA0
(BCM)GPIO0  = TXD2 -> ttyAMA1
(BCM)GPIO4  = TXD3 -> ttyAMA2
(BCM)GPIO8  = TXD4 -> ttyAMA3
(BCM)GPIO12 = TXD5 -> ttyAMA4

(BCM)GPIO15 = RXD0 -> ttyAMA0
(BCM)GPIO1  = RXD2 -> ttyAMA1
(BCM)GPIO5  = RXD3 -> ttyAMA2
(BCM)GPIO9  = RXD4 -> ttyAMA3
(BCM)GPIO13 = RXD5 -> ttyAMA4

三. 示例程序

# -*- coding: utf-8 -*
#! /usr/bin/env python
import serial
import time

ser = serial.Serial('/dev/ttyAMA0', 115200)  # 设置端口和波特率
if ser.isOpen == False:  # 检查串口是否打开
    ser.open()                # 打开串口
ser.write(b"Raspberry pi is ready")
try:
    while True:
        size = ser.inWaiting()               # 获得缓冲区字符
        if size != 0:
            response = ser.read(size)        # 读取内容并显示
            print(response)        
            ser.flushInput()                 # 清空接收缓存区
            time.sleep(0.5)                  # 软件延时
except KeyboardInterrupt:
    ser.close()

四. 参考链接

4.1 树莓派 | 串口02 - 树莓派4B上打开另外4路硬件串口_ttyama-CSDN博客

4.2 Raspberry 4B 串口通信_树莓派4b python串口通信-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值