繁体   English   中英

PySerial 16位整数

[英]PySerial 16bit integer

我正在尝试解释来自中继单元的信号,该信号使用PySerial以9600bps的速率发送16位整数,因此我不知道如何格式化响应。

中继应该发送257[var]257[var] ...等

这就是我为获得价值所做的; 我只是不知道如何将其格式化为有用的东西:

import serial
with serial.Serial('/dev/ttyS0',9600,8,serial.PARITY_NONE,serial.STOPBITS_ONE) as ser:
  for i in range(10):
    val = ser.read(2)

您可以使用struct.unpack将二进制数据转换为Python值。

val = struct.unpack("<h", ser.read(2))[0]

其中<表示小字节序,标准尺寸值, h表示带signed short int (即“标准尺寸”模式下的16位带符号的值); 如果由于某种原因您的设备以大字节序发送数据,请写>而不是<

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM