使用Python和pyserial挂起读取串行端口
更正——我使用的是第一个tty——而不是旧版本中的5 我正在编写一个程序,允许TS-4200-8160嵌入式arm计算机响应串行数据。我的第一步是记录一些串行数据。因此,我一直在测试TS-4200-8160的串行日志脚本。脚本一开始很好,收集单个字符,然后在收集数十个字符后挂起读取(因此它确实工作了一段时间):使用Python和pyserial挂起读取串行端口,python,arm,freeze,pyserial,Python,Arm,Freeze,Pyserial,更正——我使用的是第一个tty——而不是旧版本中的5 我正在编写一个程序,允许TS-4200-8160嵌入式arm计算机响应串行数据。我的第一步是记录一些串行数据。因此,我一直在测试TS-4200-8160的串行日志脚本。脚本一开始很好,收集单个字符,然后在收集数十个字符后挂起读取(因此它确实工作了一段时间): 少了什么?谢谢你的帮助 我只是放了一些打印报表来检查。它挂在read()上,在完成数十次成功读取后(一百次?我还没有计算)。感谢您的建议。您确定还有更多数据要读取吗?是的,我已将串行端口
少了什么?谢谢你的帮助 我只是放了一些打印报表来检查。它挂在read()上,在完成数十次成功读取后(一百次?我还没有计算)。感谢您的建议。您确定还有更多数据要读取吗?是的,我已将串行端口连接到pc,并且正在终端会话中键入。您是否尝试使用minterm或类似工具,以确保您的设备正常工作?
import serial
from datetime import datetime
import time, struct
import sys
def fileout(mesg):
with open('/root/python/rs485cap.out', 'a') as f:
f.write(mesg)
def main():
ser = serial.Serial(
port=0,
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=None
)
try:
while 1:
print ser.portstr
stuff=ser.read()
fileout(stuff + ", "+str(datetime.now()) + '\n')
print stuff
except KeyboardInterrupt:
print "Bye"
ser.close()
sys.exit()
ser.close()
ser.close()
if __name__ == '__main__':
main()