IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 树莓派4的串口启用设置 -> 正文阅读

[游戏开发]树莓派4的串口启用设置

????????树莓派4共有6个串口,1个是mini UART(UART1)及其他5个PL011 UARTs (UART0, UART2, UART3, UART4 &UART5),其中mini UART没有单独的时钟芯片,受CPU运行情况的影响,会有不稳定现象,建议使用其他串口。

1、树莓派的串口管脚定义

UART0 GPIO14 GPIO15 这个是硬件串口,默认当成串口控制台使用

UART1:mini UART 不建议使用

其他可以使用的就是UART2,UART3,UART4,UART5了

树莓派4的GPIO部分管脚定义如下图

引用树莓派实验室的一张图,根据BCMP编码(即GPIO)找到对应的物理管脚

然后就可以用杜邦线将物理管脚引出去做串口对接了。

2、串口设置

首先查看系统中所有的串口

dtoverlay -a | grep uart

3、配置开启串口2~5?

编辑配置文件

sudo vim /boot/firmware/config.txt

?在文件末尾添加

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

保存退出,重启生效

4、查看设置

ls /dev/ttyAMA*

?

?UART 串口与 GPIO(BCM编码) 对应关系

UART0: GPIO14 = TXD0 -> ttyAMA0 ? ? GPIO15 = RXD0 -> ttyAMA0
UART2: GPIO0 ?= TXD2 -> ttyAMA1 ? ? GPIO1 ?= RXD2 -> ttyAMA1
UART3: GPIO4 ?= TXD3 -> ttyAMA2 ? ? GPIO5 ?= RXD3 -> ttyAMA2
UART4: GPIO8 ?= TXD4 -> ttyAMA3 ? ? GPIO9 ?= RXD4 -> ttyAMA3
UART5: GPIO12 = TXD5 -> ttyAMA4 ? ? GPIO13 = RXD5 -> ttyAMA4

5、测试

首先拿UART2进行环回测试:

rpi@ubuntu:~$ python3
Python 3.9.7 (default, Sep 10 2021, 14:59:43) 
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> uart2 = serial.Serial(port="/dev/ttyAMA1", baudrate=9600)
>>> uart2.write("Hello World".encode("gbk"))
11
>>> uart2.read(11)
b'Hello World'
>>> 

还可以把UART2和UART3串接测试,将 TXD2 连接 RXD3 即 GPIO0 与 GPIO5 相连;将 TXD3 与 RXD2 连接即 GPIO4 与 GPIO1 相连。

GPIO0  = TXD2 -> ttyAMA1
GPIO4  = TXD3 -> ttyAMA2
 
GPIO1  = RXD2 -> ttyAMA1
GPIO5  = RXD3 -> ttyAMA2

打开一个python的命令行窗口,输入下面语句测试:

import serial
uart2 = serial.Serial(port="/dev/ttyAMA1", baudrate=115200)
uart3 = serial.Serial(port="/dev/ttyAMA2", baudrate=115200)
uart2.write("send Msg from UART2...".encode("gbk"))

uart3.read(22)

uart3.write("send Msg from UART3...".encode("gbk"))

uart2.read(22)

成功之后,将UART2和UART3之间的线断开,再运行以上命令,已经无法接受发送数据。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:55:47  更:2022-03-22 20:56:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 18:52:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码