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

jetson nano 串口通信

目录

1.UART通信介绍

2.电脑端准备工作

2.1 安装串口调试助手

2.2 硬件接线

3.Jetson Nano端准备工作

3.1安装库文件

 3.2修改主板上电启动串口权限

4.示例程序-发送及接收

4.1 开启串口调试助手

 4.2 导入示例程序

4.3 执行程序

4.4 查看效果 

4.4.1 串口调试端

4.4.2 Jetson Nano端 

5.串口通信代码 


目录

1.UART通信介绍

2.电脑端准备工作

2.1 安装串口调试助手

2.2 硬件接线

3.Jetson Nano端准备工作

3.1安装库文件

 3.2修改主板上电启动串口权限

4.示例程序-发送及接收

4.1 开启串口调试助手

 4.2 导入示例程序

4.3 执行程序

4.4 查看效果 

4.4.1 串口调试端

4.4.2 Jetson Nano端 


1.UART通信介绍

        通信协议在组织设备之间的通信方面起着重要作用。它根据系统要求以不同的方式设
计,并且这些协议具有在设备之间达成一致的特定规则以实现成功的通信。
        嵌入式系统、微控制器和计算机大多使用UART 作为设备到设备硬件通信协议的一种
形式。在可用的通信协议中,UART仅使用两条线作为其发送端和接收端。
        尽管是一种广泛使用的硬件通信协议方法,但它并没有一直得到充分优化。在微控制器
内部使用UART 模块时,通常会忽略帧协议的正确实现。
        根据定义,UART是一种硬件通信协议,它使用可配置速度的异步串行通信。异步意味
着没有时钟信号来同步从发送设备到接收端的输出位。
        每个UART 设备的两个信号命名为:

  • 发射机(Tx)
  • 接收器(Rx)

        每个设备的发送器和接收器线的主要目的是发送和接收用于串行通信的串行数据。

        发送UART 连接到以并行形式发送数据的控制数据总线。由此,数据现在将在传输线
(线)上逐位串行传输到接收UART。反过来,这会将串行数据转换为接收设备的并行数
据。
        UART 线用作通信介质,将一个数据发送和接收到另一个数据。请注意,UART 设备
具有专用于发送或接收的发送和接收引脚。
        对于UART 和大多数串行通信,需要在发送和接收设备上设置相同的波特率。波特率
是信息传输到通信信道的速率。在串行端口上下文中,设置的波特率将作为每秒传输的最大
位数。
        在UART 中,传输方式是数据包的形式。连接发送器和接收器的部分包括创建串行数
据包并控制这些物理硬件线路。数据包由起始位、数据帧、奇偶校验位和停止位组成。

  • 起始位

        UART 数据传输线在不传输数据时通常保持在高电压电平。为了开始数据传输,发送
UART 将传输线从高拉低一(1) 个时钟周期。当接收UART 检测到从高到低的电压转换
时,它开始以波特率的频率读取数据帧中的位。

  • 数据框

        数据帧包含正在传输的实际数据。如果使用奇偶校验位,它可以是五(5) 位,最多八(8)
位。如果不使用奇偶校验位,则数据帧可以是九(9) 位长。在大多数情况下,首先发送的
数据是最低有效位。

  • 平价

        奇偶性描述了一个数字的偶数或奇数。奇偶校验位是接收UART 判断数据在传输过程
中是否发生变化的一种方式。位可以通过电磁辐射、不匹配的波特率或长距离数据传输来改
变。
        接收端UART 读取数据帧后,计算值为1 的位数,并检查总数是偶数还是奇数。如
果奇偶校验位为0(偶校验),则数据帧中的1 或逻辑高位应总计为偶数。如果奇偶校验
位为1(奇校验),则数据帧中的1 位或逻辑高电平应总计为奇数。
        当奇偶校验位与数据匹配时,UART 知道传输没有错误。但如果奇偶校验位为0,总
数为奇数,或者奇偶校验位为1,总数为偶数,则UART 知道数据帧中的位发生了变化。

  • 停止位

        为了发出数据包结束的信号,发送UART 将数据传输线从低电压驱动到高电压,持续
一(1) 到两(2) 位持续时间。

2.电脑端准备工作

2.1 安装串口调试助手

        本节以友善串口助手为例,进行说明。
        双击打开本目录下的“serial5.2.3.exe”安装程序。然后按照下方图示步骤,依次进行。

2.2 硬件接线

        根据Jetson Nano引脚图,会用到以下引脚:

        注意:Jetson Nano使用5V 4A供电,因此无需对接VCC。
        使用USB转TTL模块将Jetson Nano与PC通过母对母的杜邦线连接,连线如下所示:
        Jetson Nano引脚8(TXD)<-->USB转TTL模块RXD
        Jetson Nano引脚10(RXD)<-->USB转TTL模块TXD
        Jetson Nano引脚6(GND)<-->USB转TTL模块GND

3.Jetson Nano端准备工作

3.1安装库文件

        启动Jetson Nano主板,然后打开命令行终端,输入下方指令来安装串口函数库。

sudo apt-get install python3-serial

 3.2修改主板上电启动串口权限

        我们需要设置Jetson Nano开机后自启动串口,打开命令行终端,输入下方指令来打开串
口权限。

sudo chmod 777 /dev/ttyTHS1

4.示例程序-发送及接收

        本节示例以电脑上的串口调试助手显示接收到Jetson Nano发送过来的说明字符串。
        电脑端通过串口调试助手发送字符也可以在Jetson Nano终端上显示。

4.1 开启串口调试助手

        将USB转TTL工具插入电脑任意一个USB接口后,打开电脑的设备管理器,查看端口是
否被识别,如下图:

        如果未出现带有CH340标识的端口,可检查电脑是否安装了CH340驱动(驱动包在本节
目录下可找到),若安装了驱动却无法识别,可更换USB接口进行排查。

         双击安装好的“Serial Port Utility”。

        打开后,选择带有CH340标识的端口,波特率、数据位等属性按照下图设置后,点击红 

框按钮即可。

 4.2 导入示例程序

        1) 启动Jetson Nano,将其连接至远程控制软件NoMachine。
        2) 缩小NoMachine窗口,将同目录下的“UART.py”文件通过鼠标左键拖拽到
NoMachine系统桌面。

         3) 输入指令“chmod a+x /home/hiwonder/Desktop/UART.py ”,为程序增加执行权
限。

        这里“hiwonder”为本机创建的,用户根据实际情况对上方指令进行改写。 

4.3 执行程序

        1) 启动Jetson Nano,将其连接至远程控制软件NoMachine。
        2) 双击系统桌面的图标,打开命令行终端。
        3) 输入指令“cd Desktop/”,切换桌面。

        4) 输入指令“python3 UART.py”,运行测试代码。

4.4 查看效果 

4.4.1 串口调试端

        在串口调试助手上面可以收到Jetson Nano发来的消息,如下:

        我们可以在下方输入,例如“nihao”,然后点击发送。

4.4.2 Jetson Nano端 

        在Jetson Nano端的命令行界面内,可以收到来自电脑端发来的消息。

5.串口通信代码 

#!/usr/bin/python3
import time
import serialprint("UART Demonstration Program")
print("NVIDIA Jetson Nano Developer Kit")serial_port = serial.Serial(port="/dev/ttyTHS1",baudrate=115200,bytesize=serial.EIGHTBITS,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,
)
# Wait a second to let the port initialize
time.sleep(1)try:# Send a simple headerserial_port.write("UART Demonstration Program\r\n".encode())serial_port.write("NVIDIA Jetson Nano Developer Kit\r\n".encode())while True:if serial_port.inWaiting() > 0:data = serial_port.read()print(data)serial_port.write(data)# if we get a carriage return, add a line feed too# \r is a carriage return; \n is a line feed# This is to help the tty program on the other end # Windows is \r\n for carriage return, line feed# Macintosh and Linux use \nif data == "\r".encode():# For Windows boxen on the other endserial_port.write("\n".encode())except KeyboardInterrupt:print("Exiting Program")except Exception as exception_error:print("Error occurred. Exiting Program")print("Error: " + str(exception_error))finally:serial_port.close()pass

相关文章:

jetson nano 串口通信

目录 1.UART通信介绍 2.电脑端准备工作 2.1 安装串口调试助手 2.2 硬件接线 3.Jetson Nano端准备工作 3.1安装库文件 3.2修改主板上电启动串口权限 4.示例程序-发送及接收 4.1 开启串口调试助手 4.2 导入示例程序 4.3 执行程序 4.4 查看效果 4.4.1 串口调试端 4.4…...

Vue基础入门(三):Vue3的使用

Vue3的使用 一、首页案例修改 修改首页的信息&#xff1a;是在之前介绍的HelloWorld.vue文件中进行内容的修改。 页面展示效果&#xff1a; 此时就看到了我们新添加的文字了&#xff01; 同样的我们开发代码的时候只需要修改了项目中的内容然后保存就会自动刷新的浏览器&…...

基于M估计样本一致性算法的点云平面拟合

平面拟合 1、算法简介2、参考文献3、实现效果4、相关代码 1、算法简介 RANSAC 是在给定模型和距离阈值 T T T的情况下&#xff0c;通过寻找最小代价 C C C来确定内点数据并拟合模型。如式&#xff08;1&#xff09;所示的代价函数&#xff0c;当点到模型的距离 e e e小于阈值 T…...

【VRTK】【VR开发】【Unity】8-可交互对象

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 之前我们只是用了一个简单方块作为可交互对象。其实可交互对象可以有许多细节设置,包括具体抓握物体的哪个点,指定抓握的方向,指定Secondary Acti…...

Huggingface 超详细介绍

Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商&#xff0c;他们本来打算创业做聊天机器人&#xff0c;然后在github上开源了一个Transformers库&#xff0c;虽然聊天机器人业务没搞起来&#xff0c;但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超…...

pycharm 怎么切换Anaconda简单粗暴

&#xff08;1&#xff09;创建一个环境 &#xff08;2&#xff09;选择一下自己conda的安装路径中conba.exe (3)选择存在的环境&#xff0c;一般会自动检测到conda创建有哪些环境&#xff0c;导入就行...

笔记二十二、使用路由state进行传递参数

22.1 父组件设置state路由参数 <NavLink toclassify state{{param_C: this.state.name, param_D: this.state.age}} className{this.activeStyle}>classify</NavLink> 父组件 Home/index.jsx import React from "react"; import {NavLink, Outlet} from…...

2023 OI 总结

2023 O I 2023 \space OI 2023 OI ここは总 • 结です ここは总\space• \space结です ここは总 • 结です 我也不知道要写些什么&#xff0c;就随便写了 csp/s第一题10min出ac思路&#xff0c;结果写炸了qwq&#xff0c;被旁边的大哥影响稍微有点大&#xff0c;没调完第一题…...

ESP32-Web-Server编程-HTML 基础

ESP32-Web-Server编程-HTML 基础 概述 HTML(HyperText Markup Language) 是用来描述网页的一种语言。其相关内容存储在前端代码的 .html 文件中。 当浏览器向 web 服务器请求网页时&#xff0c;一个 HTML 文件被发送给浏览器&#xff0c;浏览器解释该文件的内容&#xff0c;…...

【docker】docker安装与优化

目录 一、安装Docker 1、关闭防火墙 2、安装依赖包 3、设置阿里云镜像源 4、安装Docker-CE社区版并设置为开机自启动 5、查看Docker信息 二、设置镜像加速 1、申请加速地址 2、实现加速操作 三、网络优化 1、如何网络优化 2、具体操作 四、docker-server端配置文件…...

https到底把什么加密了?

首先直接说结论&#xff0c; https安全通信模式&#xff0c;是使用TLS加密传输所有的http协议。再重复一遍&#xff0c;是所有&#xff01; 通常将TLS加密传输http这个通信过程称为https&#xff0c;如果使用协议封装的逻辑结构来表达就是&#xff1a; IP TCP TLS 【 HTTP 】…...

python爬虫防乱码方案

python爬虫防乱码方案 一、chardet库 ​ 自动检测编码&#xff1a;使用 Python 库 chardet 可以自动检测文本的编码&#xff0c;然后使用检测到的编码来解码文本。你可以尝试使用 chardet 库来检测编码&#xff0c;然后解码网页内容。 案例 import requests import chardet…...

Java 语言的入门级教程有哪些?

1、Java SE 1.1、Java基础 基础概念/语法&#xff1a;面向对象&#xff08;继承、封装、多态&#xff09;基础、包、类、接口、方法、对象、属性、第一个 Java 程序。 数据类型&#xff1a; 1&#xff09;基本数据类型8种&#xff1a;byte、short、int、long、float、doubl…...

STM32算法

1.通过编码器对返回的错误速度进行滤波 #define MOTOR_BUFF_CIRCLE_SIZE 4 #define STATIC_ENCODER_VALUE 6int32_t LMotor_Encoder_buff[MOTOR_BUFF_CIRCLE_SIZE] {0}; uint8_t LEindex 0; int32_t LMotor_Encoder_last 0; int32_t L_Encoder_change 0;int32_t RMotor_…...

论文阅读 (106):Decoupling maxlogit for out-of-distribution detection (2023 CVPR)

文章目录 1 概述1.1 要点1.2 代码1.3 引用 2 预备知识3 方法3.1 MaxLogit3.2 改进MaxCosine和MaxNorm3.3 DML 1 概述 1.1 要点 题目&#xff1a;解耦最大logit分布外检测 (Decoupling maxlogit for out-of-distribution detection) 方法&#xff1a; 提出了一种心机基于log…...

毅速丨3D打印随形水路为何受到模具制造追捧

在模具制造行业中&#xff0c;随形水路镶件正逐渐成为一种革命性的技术&#xff0c;其提高冷却效率、优化产品设计、降低成本等优点&#xff0c;为模具制造带来了巨大的创新价值。 随形水路是一种根据产品形状定制的冷却水路&#xff0c;其镶件可以均匀地分布在模具的表面或内部…...

【LeetCode:1670. 设计前中后队列 | 数据结构设计】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

OpenCV将两张图片拼接成一张图片

OpenCV将两张图片拼接成一张图片 示例代码1示例代码2代码示例3示例代码4 可以用opencv或者numpy的拼接函数&#xff0c;直接将两张图拼接到一起&#xff0c;很简单方便&#xff0c;参考代码2&#xff0c;推荐此方式。新建图片&#xff0c;将两张图片的像素值填充到新图片对应位…...

4G5G智能执法记录仪在保险公司车辆保险远程定损中的应用

4G智能执法记录仪&#xff1a;汽车保险定损的**利器 随着科技的不断进步&#xff0c;越来越多的智能设备应用到日常生活中。而在车辆保险定损领域&#xff0c;4G智能执法记录仪的出现无疑是一大**。它不仅可以实现远程定损&#xff0c;还能实现可视化操作、打印保单以及数据融…...

二十七、RestClient查询文档

目录 一、MatchALL查询 二、Match查询 三、bool查询 四、排序和分页 五、高亮 一、MatchALL查询 Testvoid testMatchAll() throws IOException { // 准备Request对象SearchRequest request new SearchRequest("hotel"); // 准备DSLrequest.source().q…...

GitHub 热榜项目 - 日榜(2026-04-13)

GitHub 热榜项目 - 日榜(2026-04-13) 生成于&#xff1a;2026-04-13 统计摘要 共发现热门项目&#xff1a; 14 个 榜单类型&#xff1a;日榜 Token赞助&#xff1a;siliconflow 本期热点趋势总结 本期 GitHub 热榜呈现出 AI Agent&#xff08;智能体&#xff09;工程化与…...

SpringBoot + 小程序实战:如何设计一个高可用的流浪动物救助系统后台?

SpringBoot与小程序融合实战&#xff1a;构建高可用流浪动物救助系统的架构设计 流浪动物救助一直是社会关注的热点问题&#xff0c;但传统救助模式面临着信息不对称、资源分配不均、流程效率低下等痛点。作为一名长期参与技术公益项目的开发者&#xff0c;我曾亲眼目睹救助站工…...

智能车全向组圆环处理实战:从识别到出环的完整状态机设计

1. 智能车圆环处理的挑战与状态机设计思路 第一次参加智能车比赛时&#xff0c;圆环处理简直是我的噩梦。记得当时连续熬了三个通宵&#xff0c;就是为了解决车子在圆环里"迷路"的问题。后来才发现&#xff0c;把整个圆环过程拆分成多个状态&#xff0c;用状态机来管…...

机器学习工程师的日常:挑战与解决

在人工智能驱动的软件测试变革浪潮中&#xff0c;机器学习工程师已成为测试团队的核心驱动力。他们架起算法模型与测试实践的桥梁&#xff0c;直面数据、模型、工程化三大维度的挑战。本文将深入剖析其日常工作中的典型困境及系统性解决方案&#xff0c;为软件测试从业者提供可…...

保姆级教程:用CBLPRD-330k数据集训练你的第一个车牌识别模型(附ResNet18+CTC实战代码)

从零构建车牌识别模型&#xff1a;CBLPRD-330k数据集实战指南 车牌识别技术作为计算机视觉领域的重要应用&#xff0c;正在智能交通、安防监控等场景中发挥越来越大的作用。对于刚入门的开发者来说&#xff0c;如何利用公开数据集快速搭建一个可用的车牌识别模型&#xff0c;往…...

2025年最新Docker镜像加速器实测与配置指南

1. 为什么你需要Docker镜像加速器&#xff1f; 如果你经常使用Docker拉取镜像&#xff0c;肯定遇到过下载速度慢到让人抓狂的情况。这就像在高峰时段挤地铁&#xff0c;明明目的地就在那里&#xff0c;但就是动弹不得。我最近在部署一个微服务项目时&#xff0c;光是拉取基础镜…...

DotNetPy:现代.NET 与 Python 互操作 实战指南撼

我为什么会发出这个疑问呢&#xff1f;是因为我研究Web开发中的一个问题时&#xff0c;HTTP请求体在 Filter&#xff08;过滤器&#xff09;处被读取了之后&#xff0c;在 Controller&#xff08;控制层&#xff09;就读不到值了&#xff0c;使用 RequestBody 的时候。 无论是字…...

网络工程革新:大数据技术对网络工程的深度影响与变革(超详细解析)

网络工程革新&#xff1a;大数据技术对网络工程的深度影响与变革&#xff08;超详细解析&#xff09;前言一、大数据技术&#xff1a;核心概念1.1 定义1.2 网络工程中的大数据来源二、大数据技术&#xff1a;对网络工程的五大核心影响2.1 网络监控&#xff1a;从“单点看状态”…...

YOLOv8实战避坑:从官网文档到代码实现,手把手教你提取目标中心点坐标(附完整代码)

YOLOv8目标中心点坐标提取实战&#xff1a;从文档解析到工程化实现 在计算机视觉项目中&#xff0c;获取检测目标的中心点坐标往往是实现物体追踪、行为分析等高级功能的第一步。许多开发者在使用YOLOv8时&#xff0c;虽然能够轻松获得检测结果的可视化输出&#xff0c;却在需要…...

生物信息学与药物研发:CD6(淋巴细胞抗原)靶点的分子机制与技术应用解析

在生物制药与免疫学研究领域&#xff0c;CD6&#xff08;淋巴细胞抗原&#xff09;作为一个关键的共刺激分子&#xff0c;其在T细胞活化与自身免疫性疾病中的调控作用备受关注。本文将从分子结构、信号通路机制、以及药物研发技术路线三个维度&#xff0c;对CD6靶点进行系统性的…...