改进代码 import serial #导入模块 try: #端口,GNU / Linux上的/ dev / ttyUSB0 等 或 Windows上的 COM3 等 portx="COM4" #波特率,标准值:2400 4800 9600 19200 38400 57600 115200 230400 256000 512000 921600 bps=9600 #超时设置,None:永远等待操作,0为立即返回请求结果,其他值为等待超时时间(单位为秒) timex=5 # 打开串口,并得到串口对象 ser=serial.Serial(portx,bps,timeout=timex) print("串口详情参数:", ser) for i in range(1, 10000): print(i) ser.write("t6.txt=\"{}\"".format(str(i)).encode("GB2312")) ser.write(bytes.fromhex('ff ff ff')) time.sleep(0.1) ser.close() # 关闭串口 except Exception as e: print("---异常---:",e)
时间: 2023-11-28 17:50:38 浏览: 61
你的代码看起来已经很不错了,不过我有几个小建议:
1. 在写串口通信程序时,最好加上异常处理,以防出现意外情况导致程序崩溃。你已经在代码中加上了 try-except 语句,很好!
2. 当你使用串口通信时,最好在每次发送数据之间加上一定的延时,以确保数据能够被接收方完整接收。你已经在代码中加上了 time.sleep(0.1),看起来已经足够了。
3. 在写串口通信程序时,最好将串口对象的关闭放在 finally 块中,以确保无论程序是否出现异常,都能够正确关闭串口。你可以将 ser.close() 放在 try-except 块之外,用 finally 块来实现这一点。
下面是修改后的代码:
```
import serial
import time
try:
portx = "COM4"
bps = 9600
timex = 5
ser = serial.Serial(portx, bps, timeout=timex)
print("串口详情参数:", ser)
for i in range(1, 10000):
print(i)
ser.write("t6.txt=\"{}\"".format(str(i)).encode("GB2312"))
ser.write(bytes.fromhex('ff ff ff'))
time.sleep(0.1)
except Exception as e:
print("---异常---:", e)
finally:
ser.close()
```
希望能对你有所帮助!
阅读全文