首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读Serial Python

阅读Serial Python
EN

Stack Overflow用户
提问于 2016-08-09 03:12:01
回答 1查看 1.6K关注 0票数 1

我正在用控制台读取我的Raspberry Pi上的串行数据:

代码语言:javascript
复制
stty -F /dev/ttyUSB0 1:0:9a7:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
cat < /dev/ttyUSB0 &
echo -n -e '\x2F\x3F\x21\x0D\x0A' > /dev/ttyUSB0

我正在逐行获取数据:

代码语言:javascript
复制
/ISk5MT174-0001
0.9.1(210832)
0.9.2(1160808)
0.0.0(00339226)
0.2.0(1.03)
C.1.6(FDF5)
1.8.1(0004250.946*kWh)
1.8.2(0003664.811*kWh)
2.8.1(0004897.813*kWh)
2.8.2(0000397.465*kWh)
F.F.0(0000000)
!

现在我正尝试用python来做这件事:

代码语言:javascript
复制
import serial

SERIALPORT = "/dev/ttyUSB0"
BAUDRATE = 300

ser = serial.Serial(SERIALPORT, BAUDRATE)

print("write data")
ser.write("\x2F\x3F\x21\x0D\x0A")

time.sleep(0.5)
numberOfLine = 0

while True:
  response = ser.readline()
  print("read data: " + response)

  numberOfLine = numberOfLine + 1 
  if (numberOfLine >= 5):
    break

ser.close()

但我只收到“写入数据”,没有来自我的USB0设备的响应。

有什么建议吗?

亲切的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 04:16:35

我猜你的设备和这里讨论的是一样的:https://www.loxforum.com/forum/faqs-tutorials-howto-s/3121-mini-howto-z%C3%A4hlerauslesung-iskra-mt174-mit-ir-schreib-lesekopf-und-raspberry

如果是这样的话,您需要知道在默认情况下,pySerial打开的端口有8个数据位,没有奇偶校验。(请参阅:https://pythonhosted.org/pyserial/pyserial_api.html -> __init__)

所以,至少你想要:

代码语言:javascript
复制
ser = serial.Serial(SERIALPORT, BAUDRATE, SEVENBITS, PARITY_EVEN)

也许您还需要设置其他标志,但我不了解stty :)要查看该数字字符串的含义,请运行第一个stty命令,然后运行:

代码语言:javascript
复制
stty -F /dev/ttyUSB0 -a

它将以人类可读的形式输出设置,这可能会使您更接近解决方案。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38836848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档