繁体   English   中英

Pyserial无法读取设备

[英]Pyserial can't read device

我正在尝试使用转换模块(SSI到RS232)读取我购买的传感器的数据。 我通过USB /串行转换器将模块插入我的Windows笔记本电脑。

当我在串行模式下使用Putty时,我可以发送命令$ 2RD并从传感器单元接收相应的响应。 当我运行一个脚本试图做同样的事情时,该单位返回:''

这是我正在使用的代码:

import sys
import serial
import time

ser = serial.Serial(
    port='COM4', 
    baudrate=9600, 
    timeout=1,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
)  

while True:
    ser.write('$2RD'.encode())
    #time.sleep(1)
    s = ser.read(26)
    print s

其他几点说明:

  • 我尝试过使用flushInput,flushOutput,sleep,waiting等等的一些变化......似乎没有任何帮助。
  • 我知道我有正确的COM端口/硬件都在Putty中工作,所以很确定这是我的代码。
  • 我也尝试了13400 BAUD,结果没有差异。
  • 如果我从USB连接TX和RX线,我可以读取我正在发送的命令......所以它应该至少到达RS232 / SSI转换设备。

s = ser.read(26)应该是ser.read(size=26)因为它接受关键字参数而不是位置参数。

此外,您可以尝试设置超时以查看在特定时间之后发送的内容,否则函数可以阻止如果未按照pyserial的读取文档中的指定发送26个字节:

从串口读取大小字节。 如果设置了超时,则可能会根据请求返回较少的字符。 没有超时,它将阻塞,直到读取所请求的字节数。

暂无
暂无

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

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