正如之前在论坛上讨论过的,阅读问题正在解决,但现在却遇到了写作问题。我想写一些十六进制地址到串行端口。地址看起来像:
000062240
000062A4B
000062244
000062245
000062D50
00006225E
00006A25F
我想以0.01秒的延迟逐字节写入它们。我要写的是:
我需要在写作之前完美地写作。在C之后我需要写下地址。我把内部循环放在文本文件中读取地址。但是ser.write(line[line1-1])
给出的字符串不能与int错误组合。有什么解决办法吗?在
书写代码:
with open('lut.txt', 'r') as f:
for line in f:
#print line
ser.write('N')
time.sleep(0.01)
ser.write(' ')
time.sleep(0.01)
ser.write('C')
time.sleep(0.01)
for line1 in range(1,8):
ser.write(line[line1-1])
time.sleep(0.01)
line+=1
time.sleep(0.01)
参考完整代码。在
import serial, time
from addresstable import *
ser = serial.Serial()
ser.port = "/dev/ttyUSB0"
ser.baudrate = 38400
ser.bytesize = serial.EIGHTBITS
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.xonxoff = False
ser.rtscts = False
ser.dsrdtr = False
number_address = 10
number_char = 9
timeout=1
#f=open('lut.txt','r')
try:
ser.open()
except Exception, e:
print "error open serial port: " + str(e)
exit()
if ser.isOpen():
try:
ser.flushInput()
ser.flushOutput()
# reading
max_packet = 20
lines = 0
while True:
byteData = ser.read_until('\r',max_packet)
newdata=str(byteData)
print newdata.strip()
ser.write('I')
time.sleep(0.01)
# writing
with open('lut.txt', 'r') as f:
for line in f:
#print line
ser.write('N')
time.sleep(0.01)
ser.write(' ')
time.sleep(0.01)
ser.write('C')
time.sleep(0.01)
for line1 in range(1,8):
ser.write(line[line1-1])
time.sleep(0.01)
line+=1
time.sleep(0.01)
except Exception, e1:
print "error communicating...: " + str(e1)
else:
print "cannot open serial port "
这就是我现在要做的:
对于f行:
这个问题用简单得多的方法解决了。供将来参考。在
相关问题 更多 >
编程相关推荐