Jetsonnano B01 笔记4:UART 通信配置及编程

2023-10-07 22:10

本文主要是介绍Jetsonnano B01 笔记4:UART 通信配置及编程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今日继续我的Jetsonnano学习之路,今日学习使用Jetson硬件驱动之UART串口通信:

目录

简议串口通信:

硬件连接:

串口配置:

安装串口函数库:

设置权限:

 Python代码配置:

下载测试:


简议串口通信:

对于串口通信的基础知识这里不多讲,就简议一下,具体了解可以自行百度学习。

嵌入式系统、微控制器和计算机大多使用 UART 作为设备到设备硬件通信协议的一种
形式。在可用的通信协议中,UART仅使用两条线作为其发送端和接收端。
尽管是一种广泛使用的硬件通信协议方法,但它并没有一直得到充分优化。在微控制器
内部使用 UART 模块时,通常会忽略帧协议的正确实现。
根据定义,UART是一种硬件通信协议,它使用可配置速度的异步串行通信。异步意味
着没有时钟信号来同步从发送设备到接收端的输出位。 

硬件连接:

查阅引脚图可知,串口TX是P8,RX是P10

串口配置:

安装串口函数库:

如果是官方镜像,应该是安装好了的:

sudo pip3 install pyserial

如果你也有类似的报错如下:

那就说明用户没有对缓存目录'/home/jetson/.cache/pip'或其父目录的所有权或写入权限。

此时可以尝试将命令改为:

sudo -H pip3 install pyserial

 这样就安装好了,下面的警告不用管,感兴趣了解的翻译就放在下面了:

警告:以“root”用户运行pip可能导致权限损坏,
并与系统包管理器发生冲突。
建议使用虚拟环境:https://pip.pypa.io/warnings/venv

设置权限:

sudo chmod 777 /dev/ttyTHS1

  此处的 777 表示 你想要设置的权限:

这样配置完全后,就能正常运行串口文件了~~

 Python代码配置:


import time
import serial# 先自己打印
print("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,
)time.sleep(1)try:
# 发送了两条消息给设备:serial_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)# 接下来进入一个循环,不断检查串口是否有数据传入,
# 如果有,就读取并打印出来,并将接收到的数据发送回设备。
# 如果接收到的数据是回车符 "\r",则发送换行符 "\n"回设备。if data == "\r".encode():# For Windows boxen on the other endserial_port.write("\n".encode())# 当按下键盘上的Ctrl+C中断程序时,或者其他异常出现时,
# 程序会捕捉异常并打印错误信息。最后,程序会关闭串口连接。
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传来的数据,也能发送数据给jetson

 

这篇关于Jetsonnano B01 笔记4:UART 通信配置及编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160757

相关文章

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

Java通过ServerSocket与Socket实现通信过程

《Java通过ServerSocket与Socket实现通信过程》本文介绍了Java中的ServerSocket和Socket类,详细讲解了它们的构造方法和使用场景,并通过一个简单的通信示例展示了如何... 目录1 ServerSocket2 Socket3 服务器端4 客户端5 运行结果6 设置超时总结1

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

SpringBoot18 redis的配置方法

《SpringBoot18redis的配置方法》本文介绍在SpringBoot项目中集成和使用Redis的方法,包括添加依赖、配置文件、自定义序列化方式、使用方式、实际使用示例、常见操作总结以及注意... 目录一、Spring Boot 中使用 Redis1. 添加依赖2. 配置文件3. Redis 配置类