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

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

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

相关文章

深入理解强化学习——马尔可夫决策过程:备份图(Backup Diagram)

分类目录&#xff1a;《深入理解强化学习》总目录 在本文中&#xff0c;我们将介绍备份&#xff08;Backup&#xff09;的概念。备份类似于自举之间的迭代关系&#xff0c;对于某一个状态&#xff0c;它的当前价值是与它的未来价值线性相关的。 我们将与下图类似的图称为备份图…

NX二次开发UF_MTX3_vec_multiply_t 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX3_vec_multiply_t Defined in: uf_mtx.h void UF_MTX3_vec_multiply_t(const double vec [ 3 ] , const double mtx [ 9 ] , double vec_product [ 3 ] ) overview 概述 Ret…

rabbitMQ对优先级队列的使用

注意事项&#xff1a; 1.队列设置优先级 权制范围&#xff08;0-255&#xff09;推荐0-10 否则浪费CPU与内存 2.发消息时给消息设置优先级 3.消息需要完全事先在队列中&#xff0c;在被消费者消费 会被排序&#xff0c;否则边生产边消费不会达到预期的队列优先效果。 优先级队列…

plotneuralnet和netron结合绘制模型架构图

plotneuralnet和netron结合绘制模型架构图 一、plotneuralnet 本身的操作 模型结构图的可视化&#xff0c;能直观展示模型的结构以及各个模块之间的关系。最近借助plotneuralnet python库&#xff08;windows版&#xff09;绘制了一个网络结构图&#xff0c;有一些经验和心得…

Anolis 安装 Conda 和 YoloV8

Anolis 安装 Conda 和 YoloV8 一 Conda 和 YoloV8 安装1.Conda 下载与安装2.YoloV8 安装 二.测试 一 Conda 和 YoloV8 安装 ## 1. anolis 安装 cv2 依赖库 yum install -y mesa-libGL.x86_64 ## Anaconda https://repo.anaconda.com/archive/ ## 重启终端查看版本 conda --ver…

如何应对雨天飞行的挑战?无人机机库防护能力解析

一、 背景介绍 无人机机库是无人机停放和起降场所&#xff0c;类似传统飞机的 hangar&#xff08;飞机库&#xff09;。它是一个专门用于存储、维护和保护无人机的设施。无人机机库的存在有助于提高无人机的安全性&#xff0c;同时也为无人机提供了一个有序的管理场所。 雨天…

Matplotlib图表定制:多子图和多图形展示

Matplotlib允许用户在同一图表中创建多个子图&#xff0c;以及在同一图表中显示多个图形。 在本篇文章中&#xff0c;我们将详细介绍这两种功能&#xff0c;并通过案例演示&#xff0c;帮助你更好地利用Matplotlib进行图表定制。 1、创建包含多个子图的图表 Matplotlib提供了…

2022年03月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共10题,每题2分,共30分) 第1题 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数?注意:每一位都不相同,最高位不能为0。 A:720 B:360 C:312 D:88 答案:C 逻辑知识单选题 第2题 运行以下程…

Go 接口:nil接口为什么不等于nil?

一、Go 接口的地位 Go 语言核心团队的技术负责人 Russ Cox 也曾说过这样一句话&#xff1a;“如果要从 Go 语言中挑选出一个特性放入其他语言&#xff0c;我会选择接口”&#xff0c;这句话足以说明接口这一语法特性在这位 Go 语言大神心目中的地位。 为什么接口在 Go 中有这么…

pycharm全网最新安装教程(附加activation code),支持2018-2023版本

官网地址Download PyCharm: Python IDE for Professional Developers by JetBrains 下载的话无脑下载安装即可&#xff01; 2018.2~2023版本用这个&#xff0c;最新的activation code码 2018.1以下版本用这个 老是审核不通过只能贴图片了&#xff08;T-T&#xff09;

matlab频谱合成音乐《追光者》

选择你喜欢的一首钢琴曲&#xff0c;下载并分析曲谱&#xff0c;用matlab工具用频谱合成方法完成这首曲子的音乐合成。 前言&#xff1a;此文章为个人使用Matlab合成一首《追光者》音乐&#xff0c;且带混响和声效果 文章目录 一.题目二.要求三.课程设计目的四.概要设计五.详细…

解锁领先的有限元分析软件ABAQUS:不同版本功能特点及价格

随着科学技术的飞速发展&#xff0c;工程领域对于高效可靠的仿真软件需求日益增长。ABAQUS作为有限元分析领域的佼佼者&#xff0c;为工程师提供了强大而灵活的工具&#xff0c;用于模拟和分析复杂的结构和材料行为。本文将深入介绍ABAQUS的概念、不同版本的特点、功能区别、定…

vue3默认插槽、具名插槽以及作用域插槽实现父子组件通信

默认插槽与具名插槽 父组件 <template><div><h1>我是父组件</h1><child><div style"color: red">我是从父元素插入的值(默认插槽)</div><template #juming><div style"color: green">我是从父元素…

11.27二叉查找树,遍历二叉树,层序(判断是不是完全二叉树),根据遍历序列重构二叉树,递归输入建树(树的定义,结构体细节,typedef)

如果left<right&#xff0c;就表明其之间还有元素&#xff0c;即左右指针重合&#xff0c;区间只有一个元素也被包含其中&#xff1b; left<right,就表明递归过程中&#xff0c;只允许区间有两个及以上的元素&#xff0c;不允许区间只有一个元素&#xff0c;那么对应地&…

AB|如何正确从罗克韦尔官网下载资料?

哈喽呀&#xff0c;大家好&#xff0c;我是雷工&#xff01; 作为工控行业的从业者&#xff0c;可能要和各个厂家的中控系统、PLC、触摸屏、变频器、等软硬件产品打交道。 虽然从业十余年&#xff0c;但也不可能接触使用过所有的工控产品。还有海量的产品是没有接触过的。 但很…

Programming Abstractions in C阅读笔记:p202-p234

《Programming Abstractions in C》学习第65天&#xff0c;p202-p234总结。 一、技术总结 完成第五章学习&#xff0c;第五章介绍递归在实际问题中的进一步应用&#xff0c;例如汉诺塔问题&#xff0c;数学中的排列问题&#xff0c;更有难度。使用递归解决问题时有时候需要借…

TOD和PPS精确时间同步技术

介绍 PPS和TOD PPS和TOD是两种用于精确时间同步的技术&#xff0c;它们在许多领域都有广泛的应用&#xff0c;总的来说&#xff0c;PPS和TOD被广泛应用于各种需要高度精确时间同步的领域&#xff0c;包括通信、测量、测试、系统集成和计算机网络等。 一、PPS PPS&#xff08…

【专题】支持向量机(Support Vector Machines,SVM)

​​​​​ ​​ 支持向量机&#xff08;Support Vector Machines&#xff0c;SVM&#xff09;是一种强大的监督学习模型&#xff0c;常用于分类、回归和异常值检测任务。它的核心思想是通过构建一个最大间隔超平面来有效地分隔不同类别的数据点。 在SVM中&#xff0c;数据点…

Mysql8.1.0 安装问题-缺少visual studio 2019x64组件

缺少visual studio x64组件的问题 使用Mysql8以上的安装包mysql-8.1.0-winx64.msi进行安装&#xff0c; 提示缺少visual studio 2019 x64可再发行组件 在微软官网下载vc可再发行程序包 Microsoft Visual C 可再发行程序包最新支持的下载 在Visual Studio 2015、2017、2019 和…

使字符串的单词倒序输出表示

题目 任务描述 本关任务&#xff1a;请实现函数 revWordoder&#xff0c;能够将 pa 指向的单词表字符串中的所有单词&#xff0c;按相反顺序放入 pb&#xff0c;同时去除多余的空格&#xff0c;单词之间只留一个空格. 例如 pa 中为 red blue, 则调用函数后&#xff0c;pb 中为b…