1:先配置基本的串口参数;
2:发送数据之后就进入接收模式,数据接收成功之后计算收发之间的时间差,并打印发送次数和时间差;
3:再进入发送模式循环发送接收;
4:没有设备端的话,就短接串口的TX和RX,自收自发;
# 测试串口通讯延时
# 发送数据之后就进入接收模式,数据接收成功之后计算收发之间的时间差
# 再进入发送模式循环
import serial
import time
# 测试数据
send_data = bytes([
0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,
])
# 设置串口号和波特率
serial_baud = 115200
ser = serial.Serial('COM110', serial_baud) # 设置串口号和波特率
send_flag = 1 # 发送接收标志
send_cnt = 0 # 发送次数
print("start baud={0} data_len = {1}".format(serial_baud, len(send_data)))
while True:
if send_flag == 1:
# 发送数据,避免发的太快加一点延时
time.sleep(1)
# print("send_data")
send_cnt = send_cnt + 1
# print(f'Sending: {send_data}')
time_start = time.time() # 记录开始发送时间
# print("send_time-{0}".format(time_start))
ser.write(send_data)
send_flag = 0
else:
if ser.in_waiting > 0: # 如果有数据可读
# print("reveive_data")
data = ser.read(len(send_data)) # 读取接收到的数据
# print(f'Received: {data}') # 打印接收到的数据
time_end = time.time() # 记录接收时间
# print("reveive_time-{0}".format(time_end))
time1 = time_end - time_start # 计算发送和接收时间差
print('check {0}, Time: {1:.6f} seconds'.format(send_cnt, time1))
time.sleep(3)
send_flag = 1
测试日志
start baud=115200 data_len = 32
check 1, Time: 0.005994 seconds
check 2, Time: 0.002264 seconds
check 3, Time: 0.002105 seconds
可以自行修改发送内容,获取发送多少次之后自动停止等功能