Jetson NX实现USB转485通讯16进制数据输出与接收

Jetson NX实现USB转485通讯16进制数据输出与接收

前言

后续要做模型的部署,购置了Jetson NX板子。因为还有一部分硬件控制,想着硬件控制部分干脆也用NX来实现。其中硬件部分要实现对电磁振动器的起停,电压,频率进行控制,本身振动器有一个带485的控制器,可对控制器输入特定16进制指令进行相应控制。

准备

环境:ubuntu18.04,python3.7
485通讯协议:ModebusRTU,参考链接
使用硬件:Nvidia Jetson NX,USB转485,下游传感器/控制器等
使用串口:serial Port Header串口,端口号为ttyS0,端口插拔效果如下:
在这里插入图片描述

关键点——Pyserial

串口信息的传输主要靠Pyserial库实现,NX板子自带Pyserial,无需安装
主要命令就是串口的配置,serial.write写入数据,serial.read读取数据
最令我费解是数据格式的问题,serial的数据是以字节流的形式进行传递,即bytes
网上有很多种16进制数据输入的相关解读,都未能成功,后尝试以下方法后成功实现:
传输数据:01 03 00 00 00 03 05 CB
首先将其转化为10进制,并存储在列表中,并转化为bytes,即bytes([1,3,0,0,0,3,5,203])

程序实现

import serial
import time

ser = serial.Serial("/dev/ttyUSB0", 9600) # 选择串口,并设置波特率
if ser.is_open:
    print("port open success")

    start_data = bytes([1,6,0,0,0,1,72,10])           # 一些控制指令
    stop_data = bytes([1,6,0,0,0,0,137,202])
    read_data = bytes([1,3,0,0,0,3,5,203])
    v_50 = bytes([1,6,0,1,0,50,89,223])
    v_60 = bytes([1,6,0,1,0,60,216,27])
    f_40 = bytes([1,6,0,2,1,144,41,246])

    ser.write(start_data)
    time.sleep(2)        
    ser.write(v_50)
    time.sleep(0.1)     # 两条写入命令之间也必须有延时
    ser.write(f_40)
    time.sleep(2)
    ser.write(stop_data)
    time.sleep(0.1)
    ser.write(read_data)
    time.sleep(0.1)     # 延时,否则len_return_data将返回0,此处易忽视!!!
    ser.write(v_60)     # 每次停机后调整参数,下次启动时无需再调整所需频率和电压
    time.sleep(0.1)
    len_return_data = ser.inWaiting()  # 获取缓冲数据(接收数据)长度
    if len_return_data:
        return_data = ser.read(len_return_data)  # 读取缓冲数据      

        str_return_data = return_data.hex()            # bytes转换为hex(16进制)

        print(str_return_data)    # eg: 01 03 06 00 00 00 3c 01 90 e0 85
else:
    print("port open failed")

参考
[1]: https://www.zhihu.com/question/51733053

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jetson NX数据手册是一本关于Jetson NX开发板的指南。它提供了有关Jetson NX的详细技术规格、特性和功能的信息。 首先,数据手册包含了Jetson NX的硬件规格。它描述了Jetson NX的处理器类型、核心数量、主频、内存大小以及存储容量等硬件参数。通过阅读数据手册,我们可以了解到Jetson NX的硬件配置是如何的,从而对其性能有一个初步的了解。 其次,数据手册还提供了有关Jetson NX的软件支持的信息。它介绍了Jetson NX支持的操作系统、开发工具和软件包等。这些信息对于开发者来说非常重要,因为它们决定了在Jetson NX上开发和运行的软件环境。 此外,数据手册还包含了Jetson NX的扩展接口和连接选项的细节。这些接口包括以太网、HDMI、USB等,开发者可以通过这些接口扩展Jetson NX的功能,与其他设备行通信和交互。同时,数据手册还提供了有关Jetson NX的GPIO引脚布局和连接方式的图表,极大地方便了硬件开发者的设计工作。 最后,数据手册中还提供了有关Jetson NX的能源管理、散热设计和可靠性等方面的信息。这些内容对于系统设计和部署来说是非常重要的,因为它们涉及到Jetson NX的长期稳定和可靠的运行。 综上所述,Jetson NX数据手册是一本非常重要的指南,通过阅读它,我们可以全面了解Jetson NX的技术规格、特性和功能,帮助我们更好地开发和应用Jetson NX开发板。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值