python脚本实现串口通讯收发,并测试延时时间

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

可以自行修改发送内容,获取发送多少次之后自动停止等功能

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值