RK356x-10:串口(uart)配置与调试

news2024/11/26 20:57:48

本文记录RK3566/RK3568通用异步串口(uart)的配置与调试过程

1. 配置uart节点

        1.1 在rk3568.dtsi中已经定义了uart0,uart1...,根据电路图,确定需要使用的是哪个串口,比如我使用的是uart0,在另外一个与我们自己主板相关的dtsi文件(一般不在rk3568.dtsi中直接改,这个文件不要改动,我的是自己创建的,名为rk3566_test_base.dtsi,就这里修改),打开uart0:

&uart0 {
	status = "okay";
	//dma-names = "tx", "rx";
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_xfer/* &uart0_ctsn &uart0_rtsn*/>;
};

        1.2 注意pinctrl-0,里面的uart0_xfer在rk3568-pinctrl.dtsi(本文件也不要修改)中定义,可以看到下面信息:

        这里实际上是GPIO0-PC0和GPIO0-PC1,这里必须要和电路上的uart通信线rx和tx一致。假如采用了硬件控制信号,还需要配置uart0_ctsn和uart0_rtsn,它们同样在rk3568-pinctrl.dtsi中定义。

2.测试串口

        2.1 节点配置好后,烧录运行,一般会在/dev/下面看到类似ttyS0,ttyS1等设备文件,它对应的就是uart0,查看串口信息:

udevadm info /dev/ttyS0

        通过上面命令,可以看到如下串口信息,注意地址,它与uart在dtsi中定义的地址对应,比如下面ttyS0地址对应uart0的0xfdd50000

        2.2 串口波特率

stty -F /dev/ttyS0          查看波特率

stty -F /dev/ttyS0 115200      设置波特率为115200

        2.3 linux命令对串口读写

cat /dev/ttyS0   读取串口收到的信息

echo "hello" >> /dev/ttyS0 向串口发送信息 

3. python脚本测试串口

        3.1 要向自动测试串口,使用python是一个不错的选择,需要安装python3串口支持:

sudo apt install python3-serial

        3.2 编写测试脚本

import serial
import time
print("正在运行串口读取程序...")
com = '/dev/ttyS0'
ser = serial.Serial(com,115200,timeout=0.5)
print("Serial:",com," baud:",ser.baudrate)
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
print(ser.isOpen())
try:
    while True:
        if ser.in_waiting > 0:
            a = ser.read()
            print(a)
            serial.write(a)
except KeyboardInterrupt:
    print("程序退出!")
finally:
    ser.close()

        这个脚本就是从下位机接收数据并显示,同时发送接收到的数据,这样可以测试通信了

4.udev生成链接

        很多软件,比如klipper需要在/dev/serial/py-id或/dev/serial/py-path下面找串口的连接,但通常情况下,uart是不会自动生成这个链接的,需要修改udev规则文件,在/lib/udev/rules.d/或者/etc/udev/rules.d/中找到60-serial.rules,有可能名字不是这个,但是,它与serial有关,搜一下,然后编辑规则。

        由上图可见,原本系统只对ttyUSB*和ttyACM*作链接的,我们把串口ttyS*放进去即可,然后执行下面命令: 

sudo udevadm control --reload-rules

        这样就可以看到我们的串口被创建链接了:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】从C到C++

C和C一些语法区别 1.三目运算符&#xff1a;在C语言中返回的是一个常量&#xff0c;是不能被赋值的&#xff1b;而C中返回的是变量&#xff0c;可以被赋值 2.C中的函数必须要写返回值类型 3.在全局下&#xff0c;C不允许int a;和int a10;等这种重定义二义性操作 4.在C中不要…

WSL安装不同版本ubuntu(已有ubuntu20.04,再装ubuntu18.04)

参考&#xff1a; 如何在 WSL 中删除指定版本的 Ubuntu&#xff08;以删除 Ubuntu 22.04 为例&#xff09;_wsl卸载某个-CSDN博客 已有ubuntu20.04&#xff0c;现在再安装一个ubuntu18.04 直接参考下面我写的链接的第四步&#xff0c;前面的步骤都不需要再做了 Win11安装WSL…

《硬件架构的艺术》笔记(七):处理字节顺序

介绍 本章主要介绍字节顺序的的基本规则。&#xff08;感觉偏软件了&#xff0c;不知道为啥那么会放进《硬件架构的艺术》这本书&#xff09;。 定义 字节顺序定义数据在计算机系统中的存储格式&#xff0c;描述存储器中的MSB和LSB的位置。对于数据始终以32位形式保存在存储器…

wkhtmltopdf的安装与使用

本文来记录下wkhtmltopdf的安装与使用 文章目录 概述下载路径安装配置wkhtmltopdf 参数详解代码实现本文小结 概述 将html转为pdf的组件有很多&#xff0c;但是还没有哪一款能达到这个效果&#xff0c;其只要原因是wkhtmltopdf使用webkit网页渲染引擎开发的用来将 html转成 pdf…

241125学习日志——[CSDIY] [InternStudio] 大模型训练营 [17]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…

C++ High Performance(壹)

目录 前言 C概述 1.零开销原则 2.值语义 3.C函数中参数的含义 C必备技能 1.在函数返回值中使用auto 2.使用decltype(auto)转返回类型 3.对变量使用auto 4.常量引用 5.指针的常量传播 6.移动语义 7.资源获取与五法则 8.默认移动语义和零法则 9.将&&…

数据库的联合查询

数据库的联合查询 简介为什么要使⽤联合查询多表联合查询时MYSQL内部是如何进⾏计算的构造练习案例数据案例&#xff1a;⼀个完整的联合查询的过程 内连接语法⽰例 外连接语法 ⽰例⾃连接应⽤场景示例表连接练习 ⼦查询语法单⾏⼦查询多⾏⼦查询多列⼦查询在from⼦句中使⽤⼦查…

vue 预览pdf 【@sunsetglow/vue-pdf-viewer】开箱即用,无需开发

sunsetglow/vue-pdf-viewer 开箱即用的pdf插件sunsetglow/vue-pdf-viewer, vue3 版本 无需多余开发&#xff0c;操作简单&#xff0c;支持大文件 pdf 滚动加载&#xff0c;缩放&#xff0c;左侧导航&#xff0c;下载&#xff0c;页码&#xff0c;打印&#xff0c;文本复制&…

【zookeeper03】消息队列与微服务之zookeeper集群部署

ZooKeeper 集群部署 1.ZooKeeper 集群介绍 ZooKeeper集群用于解决单点和单机性能及数据高可用等问题。 集群结构 Zookeeper集群基于Master/Slave的模型 处于主要地位负责处理写操作)的主机称为Leader节点&#xff0c;处于次要地位主要负责处理读操作的主机称为 follower 节点…

Linux麦克风录音实战

在 Linux 上使用麦克风进行录音可以通过多种方式实现&#xff0c;包括使用命令行工具、图形界面应用程序以及编程接口。下面我将介绍几种常见的方法&#xff0c;从简单的命令行工具到使用 PortAudio 库进行编程。 一. 使用arecord命令行工具 arecord 是 ALSA&#xff08;Adva…

游戏引擎学习第23天

实时代码编辑功能的回顾 当前实现的实时代码编辑功能已经取得了显著的成功&#xff0c;表现出强大的性能和即时反馈能力。该功能允许开发者在修改代码后几乎立即看到变化在运行中的程序中体现出来&#xff0c;极大提升了开发效率。尽管目前的演示内容较为简单&#xff0c;呈现…

Oracle 数据库 IDENTITY 列

IDENTITY列是Oracle数据库12c推出的新特性。之所以叫IDENTITY列&#xff0c;是由于其支持ANSI SQL 关键字 IDENTITY&#xff0c;其内部实现还是使用SEQUENCE。 不过推出这个新语法也是应该的&#xff0c;毕竟MyQL已经有 AUTO_INCREMENT列&#xff0c;而SQL Server也已经有IDENT…

计算机网络socket编程(2)_UDP网络编程实现网络字典

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络socket编程(2)_UDP网络编程实现网络字典 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…

2022年计算机网络408考研真题解析

第一题&#xff1a; 解析&#xff1a;网络体系结构-数据链路层 在ISO网络参考模型中&#xff0c;运输层&#xff0c;网络层和数据链路层都实现了流量的控制功能&#xff0c;其中运输层实现的是端到端的流量控制&#xff0c;网络层实现的是整个网络的流量控制&#xff0c;数据链…

AI Prompt Engineering

AI Prompt Engineering 简介 Prompt Engineering, 提示工程&#xff0c;是人工智能领域的一项技术&#xff0c;它旨在通过设计高效的提示词&#xff08;prompts&#xff09;来优化生成式 AI&#xff08;如 GPT、DALLE 等&#xff09;的输出。提示词是用户与生成式 AI 交互的核…

Windows系统电脑安装TightVNC服务端结合内网穿透实现异地远程桌面

文章目录 前言1. 安装TightVNC服务端2. 局域网VNC远程测试3. Win安装Cpolar工具4. 配置VNC远程地址5. VNC远程桌面连接6. 固定VNC远程地址7. 固定VNC地址测试 前言 在追求高效、便捷的数字化办公与生活的今天&#xff0c;远程桌面服务成为了连接不同地点、不同设备之间的重要桥…

直播实时美颜平台开发详解:基于视频美颜SDK的技术路径

视频美颜SDK作为实现实时美颜的关键技术&#xff0c;为开发者提供了高效、灵活的解决方案。本篇文章&#xff0c;小编将以“基于视频美颜SDK的技术路径”为主题&#xff0c;深入解析直播实时美颜平台的开发要点。 一、视频美颜SDK的作用与优势 视频美颜SDK是一种集成化的开发工…

量子感知机

神经网络类似于人类大脑&#xff0c;是模拟生物神经网络进行信息处理的一种数学模型。它能解决分类、回归等问题&#xff0c;是机器学习的重要组成部分。量子神经网络是将量子理论与神经网络相结合而产生的一种新型计算模式。1995年美国路易斯安那州立大学KAK教授首次提出了量子…

实现在两台宿主机下的docker container 中实现多机器通讯

基于我的实验背景 上位机&#xff1a;ubuntu 20.04 (docker humble 22.04) 下位机&#xff1a;ubuntu 22.04&#xff08;docker noetic 20.04&#xff09; 目标&#xff1a;实现在上位机中的docker container 容器的22.04环境去成功远程访问 非同网段的下位机的20.04的contai…

远程控制软件:探究云计算和人工智能的融合

在数字化时代&#xff0c;远程控制工具已成为我们工作与生活的重要部分。用户能够通过网络远程操作和管理另一台计算机&#xff0c;极大地提升了工作效率和便捷性。随着人工智能&#xff08;AI&#xff09;和云计算技术的飞速发展&#xff0c;远程控制工具也迎来了新的发展机遇…