当前位置: 首页 > web >正文

RK3576开发板串口配置及使用

RK3576 串口配置及使用

  • 重要提示:
    • 串口配置查询
    • 串口配置
      • 设置为 9600 波特率, 8N1:
      • 设置为 115200 波特率, 8E1 (偶校验):
      • 设置为 115200 波特率, 8N1, 并启用硬件流控 (RTS/CTS):
      • 设置为原始模式 (Raw Mode),常用于程序通信:
    • 通过命令行发送数据
    • 通过命令行发送数据

注意博主开发板为RK3567J,系统为Ubuntu 22.04.5 LTS

重要提示:

在Ubuntu系统中,串口设备通常以 /dev/ttyS* 或 /dev/ttyO* 形式存在。对于AM335x系列处理器(TL3576基于AM335x),串口设备名很可能是 /dev/ttyO1(对应UART1)。您需要通过 dmesg | grep tty 或 ls /dev/tty* 命令来确认具体的设备文件名。

本人使用的开发板为串口1设备名为/dev/ttyS1,下面我将以该设备为列进行测试。

串口配置查询

在 Linux 命令行中,有几种方法可以查看串口 /dev/ttyS1的当前配置(波特率、数据位、奇偶校验等)。
stty 是专门用于查询和设置终端(包括串口)行设置的工具。-F 或 --file=:指定要查询的设备文件。

stty -F /dev/ttyS1

在终端输入上述命令回车后会显示
在这里插入图片描述
其中比较重要的信息有:
波特率 (Baud Rate):
speed 115200 baud:表示当前波特率是 115200。
其他常见值:9600, 19200, 38400, 57600, 230400 等。
数据位 (Data Bits):
cs8:表示 8 位数据位。cs7 表示 7 位,cs6 表示 6 位。
奇偶校验 (Parity):
-parenb:负号 - 表示 禁用 奇偶校验 (None)。
parenb(无负号)表示启用奇偶校验。
-parodd:如果启用,-parodd 表示偶校验 (Even),parodd 表示奇校验 (Odd)。
停止位 (Stop Bits):
-cstopb:负号 - 表示 1 位 停止位。
cstopb(无负号)表示 2 位停止位。
硬件流控 (Hardware Flow Control):
-crtscts:负号 - 表示 禁用 RTS/CTS 硬件流控。
crtscts 表示启用。
输入模式:
icanon:表示启用规范输入(行缓冲)。
-icanon:表示禁用规范输入(原始模式,逐字节读取)。

串口配置

设置为 9600 波特率, 8N1:

stty -F /dev/ttyS1 9600 cs8 -cstopb -parenb

设置为 115200 波特率, 8E1 (偶校验):

stty -F /dev/ttyS1 115200 cs8 -cstopb parenb parodd

parenb:启用奇偶校验。
parodd:奇校验。如果要偶校验,用 -parodd。

设置为 115200 波特率, 8N1, 并启用硬件流控 (RTS/CTS):

stty -F /dev/ttyS1 115200 cs8 -cstopb -parenb crtscts

设置为原始模式 (Raw Mode),常用于程序通信:

stty -F /dev/ttyS1 115200 raw -echo -echoe -echok

raw:这是一个快捷方式,它会自动设置 cs8 -cstopb -parenb -icanon -echo -echoe … 等,非常适合程序直接读写串口。
-echo -echoe -echok:确保禁用回显(虽然 raw 通常已包含)。

通过命令行发送数据

要向串口发送数据,可以使用 echo 命令。

echo -n "Hello, UART!" | sudo tee /dev/ttyS1

| sudo tee /dev/ttyS1:将 echo 的输出通过管道传递给 tee 命令,tee 再以 sudo 权限写入串口设备。
-e: 启用转义字符解析(如 \r, \n)。
-n:不输出结尾的换行符。

通过命令行发送数据

sudo cat /dev/ttyS1

注意:发送端要以字符格式发送,否则可能解析不了

http://www.xdnf.cn/news/19430.html

相关文章:

  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • 深入解析Nginx常见模块2
  • 【SoC】【W800】基于W800的PWM实现
  • python pyqt5开发DoIP上位机【源码】
  • 合集:搭建wiki知识库
  • C++广度优先搜索
  • React Native基本用法
  • 从支付工具到收益资产:稳定币在 Berachain 上的二次进化
  • 四、GC 垃圾回收(二)
  • 小模型 vs 大模型:企业 AI 落地的成本、性能与场景适配选择
  • 广东省省考备考(第九十天8.30)——判断推理(第十节课)
  • 企业为什么需要部署数据防泄露系统?
  • 第三十一天:数列求和取模
  • C++讲解---如何设计一个类
  • 【lua】模块基础及应用
  • LED灯带离线语音控制方案WTK6900P
  • fork详解(附经典计算题)
  • 苍穹外卖项目笔记day02
  • Rust 登堂 之 Sized和不定长类型 DST(七)
  • leetcode刷题记录08——top100题里的5道中等题
  • Vue基础知识-methods事件绑定(@事件名和v-on:事件名)和常用事件修饰(.prevent/.stop/.once/.enter)
  • Coze源码分析-API授权-删除令牌-后端源码
  • 【15】VisionMaster入门到精通——--通信--TCP通信、UDP通信、串口通信、PLC通信、ModBus通信
  • 鸿蒙ArkTS 核心篇-16-循环渲染(组件)
  • lvgl模拟器 被放大 导致显示模糊问题
  • Notepad++使用技巧1
  • 日志ELK、ELFK、EFK
  • 快速学习和掌握Jackson 、Gson、Fastjson
  • AI + 行业渗透率报告:医疗诊断、工业质检领域已进入规模化落地阶段
  • GD32入门到实战20--定时器