gpt4 book ai didi

python - RS232串口数据编解码

转载 作者:行者123 更新时间:2023-12-02 00:05:20 24 4
gpt4 key购买 nike

这是我第一次不得不通过 RS232 串口连接到设备来读取/写入数据,而且我一直卡在编码/解码过程中。

我正在使用库“pyserial”在 Python 3 中做所有事情。这是我到目前为止所做的:

import serial

ser = serial.Serial()
ser.port = '/dev/ttyUSB0'
ser.baudrate = 115200
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.timeout = 3

ser.open()

device_write = ser.write(bytearray.fromhex('AA 55 00 00 07 00 12 19 00'))

device_read = ser.read_until()

连接/通信似乎按预期工作。 device_read 的输出是

b'M1830130A2IMU v3.2.9.1 26.04.19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x0527641\x00\x00\x00IMHF R.1.0.0 10.28.2018 td:  6.500ms\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x00'

这就是我卡住的地方。我不知道如何解释这个。附件是数据表中的一张图片,解释了输出应该代表什么。

enter image description here

对于我拥有的设备,数据表显示“字节 98 到 164 中的字段为空”。有人可以帮我理解需要做什么才能将 ser.read_until() 的输出转换为“人类可读”的形式并表示图像中的数据吗?我不需要有人为我编写代码,但我什至不确定从哪里开始。同样,这是我第一次这样做,所以我对发生的事情有点迷茫。

最佳答案

如果您尝试写入十六进制值为 12(十进制 18)的单个字节,我相信您需要做的是 ser.write(bytes([0x12])),这是相当于 ser.write(bytes([18]))

看起来您的输出是 154 字节而不是 98 字节,而且其中大部分是人类不可读的。但是如果你确实有图中描述的数据,你可以像这样分解它:

ID_sn = device_read[0:8].decode('ascii')
ID_fw = device_read[8:48].decode('ascii')
Press_Sens = device_read[48]

等等。

关于python - RS232串口数据编解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60823172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com