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

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部