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

本文介绍了在JetsonNano上使用UART进行串口通信的过程,包括硬件连接、配置PySerial库、设置权限以及提供Python代码示例,确保上位机与Jetson之间的双向通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日继续我的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 end
                serial_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

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值