树莓派CM4开启I2C与UART串口登录同时serial0映射到ttyS0 开启多串口
文章目录
- 前言
- 1. 树莓派开启I2C与UART串口登录
- 2. 开启多串口
- 总结:
前言
最近用CM4的时候使用到了I2C以及多个UART的情况。
同时配置端口映射也存在部分问题。
这里集中记录一下。
1. 树莓派开启I2C与UART串口登录
输入指令sudo raspi-config
跳转到如下界面:
选择Interface Options
这一栏,通过按键上下↑↓
进行切换,Enter回车选择。
选择I2C选项,再选择Yes
这个就是开启了I2C的功能。
再以同样的方式选择Serial Port
,选择yes。
这个选项是可以通过UART打印shell的信息,也就是串口登录。
还有其他的一些功能开启,可以自己探索一下。
最后通过左右↔
选择<Back>
,返回到初始界面,再选择<Finish>
。
这里有个坑点
,如果开启了串口登录的话,那么我们要使用这个uart1,通过RX1脚接收的数据可能会出现异常。
因此,如果我们需要使用到这个串口1的引脚,需要把这个串口登录给关闭。
最后再重启即可。
登录后通过ls /dev
可以看到效果图如下所示,显示i2c相关接口。
通过ls -l /dev
可以看到这个串口映射为ttyS0
2. 开启多串口
对于串口的使用,可能不只用到一个,需要多个串口的时候,这时候就需要开启其他的串口了。
CM4默认只开启了UART0,刚才写到的UART串口登录其实就是开启了串口1。
但这里我们会发现uart0和uart1使用的是同一对引脚,如果想用uart1并且引脚默认配置为14,15脚,需按照上面的raspi-config里面进行开启。
树莓派 CM4 默认情况下将 GPIO14 和 GPIO15 引脚用于 UART0 串口,用于内置蓝牙和控制台通信。默认配置下,控制台 (console) 通过这个串口与树莓派进行通信,可以通过串口连接到树莓派,输出启动日志、命令行输出等。
开启多串口的方式只需要在/boot/config.txt
里面添加dtoverlay=uartx
,这里x就是串口对应的号。
比如我想要开启uart3,只需要在config.txt文件的最下面一行添加dtoverlay=uart3
。
配置完成后重启即可。
配置完成后通过ls /dev
可以看到多了一个ttyAMA1
。
这里要注意一个点,虽然CM4默认开启uart0和uart1,它们分别对应ttyAMA0,和ttyS0。如果我们把所有的uart都开启,那么uart2对应ttyAMA1,uart3对应ttyAMA2,以此类推。
但是我们看到,这里我配置的是uart3,但是通过ls指令,看到的映射端口却是ttyAMA1。这就说明,ttyAMAx这个映射其实是依次分配的,也就是说,我开启了uart0和1,后面如果开启的不是uart2,是uart3,4,5等,这个ttyAMAx映射的就是下一个。而不是说ttyAMA1固定映射uart2。
总结:
这篇博客主要是平时使用过程中常遇到的一些配置相关问题,这里主要做个记录,防止遗忘。
相关文章:

树莓派CM4开启I2C与UART串口登录同时serial0映射到ttyS0 开启多串口
文章目录 前言1. 树莓派开启I2C与UART串口登录2. 开启多串口总结: 前言 最近用CM4的时候使用到了I2C以及多个UART的情况。 同时配置端口映射也存在部分问题。 这里集中记录一下。 1. 树莓派开启I2C与UART串口登录 输入指令sudo raspi-config 跳转到如下界面&#…...
【租车骑绿道】python实现-附ChatGPT解析
1.题目 租车骑绿道 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 部门组织绿道骑行团建活动。租用公共双人自行车骑行,每辆自行车最多坐两人、做大载重M。 给出部门每个人的体重,请问最多需要租用多少双人自行车 输入描述 第一行两个数字m、n,自行车限重m,代表部门总…...

【ONE·Linux || 多线程(一)】
总言 多线程:进程线程基本概念、线程控制、互斥与同步。 文章目录 总言1、基本概念1.1、补充知识1.1.1、堆区细粒度划分1.1.2、虚拟地址到物理空间的转化 1.2、如何理解线程、进程1.2.1、如何理解线程?1.2.2、如何理解进程? 1.3、实践操作1.…...

华为智能企业上网行为管理安全解决方案(1)
华为智能企业上网行为管理安全解决方案(1) 课程地址方案背景需求分析企业上网行为概述企业上网行为安全风险分析企业上网行为管理需求分析 方案设计组网架构设备选型设备简介行为管理要点分析方案功能概述 课程地址 本方案相关课程资源已在华为O3社区发…...

Acwing 240. 食物链
Acwing 240. 食物链 题目描述思路讲解代码展示 题目描述 思路讲解 代码展示 #include <iostream>using namespace std;const int N 50010;int n, m; int p[N], d[N]; //p[]是并查集的father,d[]是距离int find(int x) {if (p[x] ! x) { //如果说x不是树根的话int t f…...
c++ 容器适配器
Container //创建一个命名空间,避免和库里的冲突 namespace chen {//写一个模版template<class T, class Container deque<T>>//开始写我们的类class stack{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_back();}const …...
正则表达式的应用领域及基本语法解析
目录 一、正则表达式的应用领域 1. 文本搜索和替换 2. 表单验证 3. 数据提取和分析 4. 数据清洗和处理 5. URL路由和路由匹配 二、正则表达式的基本语法 1. 字符匹配 2. 元字符和字符类 3. 量词和边界 4. 分组和捕获 5. 转义字符 三、常见正则表达式示例 1. 邮箱…...

CIP或者EtherNET/IP中的PATH是什么含义?
目录 SegmentPATH举例 最近在学习EtherNET/IP,PATH不太明白,翻了翻规范,在这里记个笔记。下面的叙述可能是中英混合,有一些是规范中的原文我直接搬过来的。我翻译的不准确。 Segment PATH是CIP Segment中的一个分类。要了解PATH…...
使用lombok进行bulider之后调取HashMap的自定义方法进行对象操作报空指针异常(pojo也适用)
概论 这主要的问题就是bulider的特性的问题,就是他只能给你搭建了一个脚手架,里面的东西其实他没动你的,你得自己去给他实体化,如果你使用了类似HashMap等集合的话,你得自己去bulid一个在那个里面作为初始化对象你才可…...

矩阵-day14
...

上古神器:十六位应用程序 Debug 的基本使用
文章目录 参考环境上古神器 DebugBug 与 DebuggingDebugDebug 应用程序淘汰原因使用限制 DOSBox学习 Debug 的必要性DOSBox-X Debug 的基本使用命令 R查看寄存器的状态修改寄存器的内容 命令 D显示内存中的数据指定起始内存空间地址指定内存空间的范围 命令 A使用命令语法错误查…...

[学习笔记]ARXML - Data Format
参考AUTOSAR文档: https://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdfhttps://www.autosar.org/fileadmin/standards/R22-11/FO/AUTOSAR_TPS_ARXMLSerializationRules.pdf 编码 arxml只允许使用UTF-8编码ÿ…...

Go_原子操作和锁
原子操作和锁 本文先探究并发问题,再探究锁和原子操作解决问题的方式,最后进行对比。 并发问题 首先,我们看一下程序 num该程序表面看上去一步就可以运行完成,但是实际上,在计算机中是分三步运行的,如下…...

初识Java 12-1 流
目录 Java 8对流的支持 流的创建 随机数流 int类型的区间范围 generate() iterate() 流生成器 Arrays 正则表达式 本笔记参考自: 《On Java 中文版》 ||| 流的概念:流是一个与任何特定的存储机制都没有关系的元素序列。 流与对象的成批处理有关…...

【软件工程_UML—StartUML作图工具】startUML怎么画interface接口
StartUML作图工具怎么画interface接口 初试为圆形 ,点击该接口在右下角的设置中->Format->Stereotype Display->Label,即可切换到想要的样式 其他方式 在class diagram下,左侧有interface图标,先鼠标左键选择࿰…...
单片机之瑞萨RL78定时计数器
单片机之瑞萨RL78定时计数器 使用瑞萨RL78定时计数器的简单例程。这个例程使用定时器0来产生一个以秒为单位的定时器中断,并在中断服务程序中增加一个全局变量以跟踪中断的发生。 首先,我们需要了解RL78的定时器0是一个16位的定时器,它的时钟…...

手机号码格式校验:@Phone(自定义参数校验注解)
需求 新增接口 和 修改接口 中,手机号码的格式校验是普遍需要的。 在每个手机号码字段上添加正则表达式校验注解来实现校验,重复书写,容易出错;在不同的手机号码字段上,可能使用了不同的校验规则,无法有效…...

ORACLE Redo Log Buffer 重做日志缓冲区机制的设计
最近和朋友包括一些国产数据库的研发人员交流,很多程序员认为 Oracle 已经过时,开源数据库或者他们研发的国产数据库才代表数据库发展的未来。甚至在很多交流会议上拿出自家产品的某一个功能点和 Oracle 对比就觉得已经遥遥领先。 实际上数据库系统的发展…...

PWN Test_your_nc Write UP
目录 PWN 00 解题过程 总结归纳 PWN 01 解题过程 总结归纳 PWN 02 解题过程 总结归纳 PWN 03 解题过程 总结归纳 PWN 04 解题过程 总结归纳 CTF PWN 开始! 冲就完了 PWN 00 解题过程 ssh远程链连接 ssh ctfshowpwn.challenge.ctf.show -p28151 输…...

Centos7配置firewalld防火墙规则
这里写自定义目录标题 欢迎使用Markdown编辑器一、简单介绍二、特点和功能2.1、区域(Zone)2.2、运行时和永久配置2.3、服务和端口2.4、动态更新2.5、连接跟踪2.6、D-Bus接口 三、设置规则3.1、启动防火墙服务3.2、新建防火墙规则的服务,添加端…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...