改进代码 import serial import time import random # 打开串口 portx = "COM3" bps = 9600 timex = 5 ser = serial.Serial(portx, bps, timeout=timex) print("串口详情参数:", ser) try : # 循环写入 t6.txt for i in random(1, 1000) : print(i) msg = "t6.txt=\"{}\"".format(str(i)) ser.write(msg.encode("utf-8")) ser.write(b'\xff\xff\xff') # 发送标志 time.sleep(0.1) # 循环写入 t7.txt for i in random(1, 1000) : print(i) msg = "t7.txt=\"{}\"".format(str(i)) ser.write(msg.encode("utf-8")) ser.write(b'\xff\xff\xff') # 发送标志 time.sleep(0.1) # 循环写入 t8.txt for i in random(1, 1000) : print(i) msg = "t8.txt=\"{}\"".format(str(i)) ser.write(msg.encode("utf-8")) ser.write(b'\xff\xff\xff') # 发送标志 time.sleep(0.1) except Exception as e : print("---异常---:", e) finally : # 关闭串口 ser.close()
时间: 2023-12-03 10:45:51 浏览: 85
这段代码存在一些小问题,可以改进如下:
1. `random(1, 1000)` 应该改成 `range(1000)`,表示生成一个 0~999 的随机整数序列。
2. 在循环时可以使用 `for i in range(1000)`,这样可以避免使用 `i` 变量之前未定义的问题。
3. 发送数据时,最好使用 try...except...finally 结构来确保程序的健壮性。如果在发送数据时出现异常,可以通过 `except` 分支将异常信息输出到控制台,然后继续执行程序。最后通过 `finally` 分支关闭串口,释放资源。
综上,改进后的代码如下:
```python
import serial
import time
import random
# 打开串口
portx = "COM3"
bps = 9600
timex = 5
ser = serial.Serial(portx, bps, timeout=timex)
print("串口详情参数:", ser)
try:
# 循环写入 t6.txt
for i in range(1000):
num = random.randint(1, 1000)
print(num)
msg = "t6.txt=\"{}\"".format(num)
ser.write(msg.encode("utf-8"))
ser.write(b'\xff\xff\xff') # 发送标志
time.sleep(0.1)
# 循环写入 t7.txt
for i in range(1000):
num = random.randint(1, 1000)
print(num)
msg = "t7.txt=\"{}\"".format(num)
ser.write(msg.encode("utf-8"))
ser.write(b'\xff\xff\xff') # 发送标志
time.sleep(0.1)
# 循环写入 t8.txt
for i in range(1000):
num = random.randint(1, 1000)
print(num)
msg = "t8.txt=\"{}\"".format(num)
ser.write(msg.encode("utf-8"))
ser.write(b'\xff\xff\xff') # 发送标志
time.sleep(0.1)
except Exception as e:
print("---异常---:", e)
finally:
# 关闭串口
ser.close()
```
注意:这段代码仅供参考,实际使用时还需根据具体需求进行修改和完善。
阅读全文