哥,我也有个疑问 ,10Mbps波特率,传输速率能测到1MB/s附近吗。搞了个脚本测试测不到理论速率郁闷中。
- import serial
- import time
-
- # 配置串口参数,需要根据实际情况修改
- ser = serial.Serial(
- port='COM45', # 串口号
- baudrate=9216000,#9216000, # 波特率
- bytesize=serial.EIGHTBITS,
- parity=serial.PARITY_NONE,
- stopbits=serial.STOPBITS_ONE
- )
-
- # 生成测试数据
- test_data = b'A' * 1024 # 1KB的数据
-
- # 初始化变量
- sent_data = b''
- received_data = b''
- start_time = time.time()
-
- try:
- # 进行10秒的压测
- while time.time() - start_time < 10:
- # 发送数据
- ser.write(test_data)
- sent_data += test_data
- #print(f"已发送 {len(sent_data)} 字节数据")
- # 接收数据
- while ser.in_waiting:
- received_data += ser.read(ser.in_waiting)
- #print(f"已接收 {len(received_data)} 字节数据")
-
- except KeyboardInterrupt:
- print("测试被手动中断。")
- finally:
- # 关闭串口连接
- ser.close()
-
- # 计算发送和接收的数据量(单位:字节)
- sent_size = len(sent_data)
- received_size = len(received_data)
-
- # 计算传输时间
- elapsed_time = time.time() - start_time
-
- # 计算传输速度(单位:MB/s)
- speed = sent_size / (elapsed_time * 1024 * 1024)
-
- # 对比收发数据是否一致
- is_consistent = sent_data == received_data
-
- print(f"发送数据量: {sent_size} 字节")
- print(f"接收数据量: {received_size} 字节")
- print(f"传输时间: {elapsed_time:.2f} 秒")
- print(f"传输速度: {speed:.4f} MB/s")
- print(f"收发数据是否一致: {'是' if is_consistent else '否'}")
-
复制代码
|