树莓派4B 串口通信 ubuntu系统

本文介绍了在树莓派4B运行Ubuntu系统时,如何配置和使用串口通信,包括开启额外串口、连接设备、Python及C程序测试通信的详细步骤。

一、说明

现在csdn上搜到的大多数文章讲解树莓派的串口 一般都是都是讲解如何使用minicom和ttyAMA0,而且都是在raspberry上操作的,这就导致了很多树莓派搭载ubuntu系统的树莓派用户不知道如何操作串口了。通过上网查找最终找到了解决方法,虽然不算完美但总算可以用了。

二、小坑

就算按照下面的操作步骤弄过以后,ttyAMA0这个硬件串口还是没办法使用,但好的是ttyAMA1、ttyAMA2、ttyAMA3、ttyAMA4都可以和电脑的虚拟串口助手之间进行通信了。

三、操作步骤

日前需要使用树莓派多个串口,在网上查询资料得知,树莓派4b除了UART0(PL011)和UART1(mini UART)还新增了四个PL011串口,为预防忘记相关知识和易于寻找,特此去整理一下树莓派4b的串口配置笔记。

1、展示所有串口命令

dtoverlay -a | grep uart

2、配置开启串口

sudo vim /boot/firmware/config.txt
3、在文件末尾添加

dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5
4、重启树莓派  

sudo reboot

5、查看是否生效

ls /dev/ttyAMA*

(出现其他串口即为生效)

四、树莓派4B各个串口引脚

<think>好的,用户的问题是在树莓派4B的Ubuntu系统中配置串口。我需要先整理现有的引用信息,看看之前的配置方法是怎么样的。 首先,引用[1]提到树莓派4B不需要禁用蓝牙,因为有多余的串口可用,这一点和之前的型号不同。用户可能之前看过禁用蓝牙的教程,需要纠正这一点。然后,引用[2]详细说明了配置步骤,比如通过dtoverlay添加串口,修改usercfg.txt文件,以及GPIO对应关系。引用[3]和[4]补充了不同Ubuntu版本的情况,比如22.04和24.04,但配置方法类似。 用户的需求是配置串口,可能需要知道具体步骤:检查支持的串口、编辑配置文件、重启并验证。需要注意的是不同Ubuntu版本配置文件的位置可能稍有不同,比如usercfg.txt的位置在/boot/firmware/下。另外,GPIO的对应关系也很重要,用户连接硬件时需要参考这些引脚。 可能的疑问点包括:如何确认串口已启用?如何测试串口通信?是否需要安装额外的工具?比如使用pyserial或者minicom。引用中提到的测试方法,如Python代码或cutecom,应该包含在回答中。 还需要提醒用户权限问题,比如串口设备可能需要用户加入dialout组。此外,检查串口设备是否存在,例如ls /dev/ttyAMA*,确保配置生效。 总结步骤应该是:1. 检查当前串口;2. 编辑配置文件添加所需串口;3. 重启;4. 验证设备节点;5. 设置权限;6. 测试通信。每个步骤需要具体命令和注意事项,比如使用sudo编辑文件,重启后生效等。</think>### 树莓派4B Ubuntu系统串口配置步骤 #### 一、配置前准备 1. **确认系统版本** 树莓派4B的Ubuntu 20.04/22.04/24.04 LTS系统配置方法基本一致,无需禁用蓝牙,直接通过`dtoverlay`启用额外PL011硬件串口[^1][^2]。 #### 二、具体配置流程 1. **查看当前支持的串口** 执行以下命令列出所有可启用的UART接口: ```bash dtoverlay -a | grep uart ``` 输出应包含`uart2`、`uart3`、`uart4`、`uart5`等选项[^2][^4]。 2. **编辑配置文件启用串口** 打开`/boot/firmware/usercfg.txt`(Ubuntu 20.04+): ```bash sudo vim /boot/firmware/usercfg.txt ``` 在文件末尾添加需要启用的串口(例如启用UART2-UART5): ```ini dtoverlay=uart2 dtoverlay=uart3 dtoverlay=uart4 dtoverlay=uart5 ``` 保存后重启系统[^2][^4]。 3. **验证串口设备节点** 重启后执行: ```bash ls /dev/ttyAMA* ``` 应显示`ttyAMA1`到`ttyAMA4`(对应UART2-UART5),`ttyAMA0`为默认蓝牙/UART0接口[^2][^3]。 4. **设置用户权限** 将当前用户加入`dialout`组以访问串口: ```bash sudo usermod -aG dialout $USER ``` 重新登录生效。 #### 三、硬件连接参考 | 串口 | GPIO引脚(BCM编号) | 设备节点 | |--------|---------------------|-------------| | UART2 | TX=GPIO0, RX=GPIO1 | /dev/ttyAMA1| | UART3 | TX=GPIO4, RX=GPIO5 | /dev/ttyAMA2| | UART4 | TX=GPIO8, RX=GPIO9 | /dev/ttyAMA3| | UART5 | TX=GPIO12, RX=GPIO13| /dev/ttyAMA4|[^2][^4] #### 四、通信测试(Python示例) ```python import serial # 打开UART2(波特率需与外设一致) uart = serial.Serial(port="/dev/ttyAMA1", baudrate=9600) uart.write("Hello UART2".encode()) data = uart.read(10) print("Received:", data.decode()) ``` #### 五、常见问题排查 1. **设备节点未出现** - 检查`dtoverlay`是否拼写错误 - 确认配置文件路径正确(Ubuntu系统使用`/boot/firmware/`而非Raspbian的`/boot/config.txt`)[^2] 2. **权限不足** - 执行`groups`确认用户是否在`dialout`组中 3. **波特率不匹配** - 确保Python代码与外设设备(如Arduino)使用相同波特率
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值