使用Python实现带时间戳的串口读写函数

import serial
import time

def serial_read_write(port, baudrate, timeout):
    # 打开串口
    ser = serial.Serial(port, baudrate, timeout=timeout)
    
    # 开始时间
    start_time = time.time()
    
    # 读取数据
    while True:
        if ser.in_waiting > 0:
            data = ser.read(ser.in_waiting)
            
            # 计算时间戳
            current_time = time.time() - start_time
            
            # 输出时间戳和数据
            print(f"[{current_time:.3f}s] Received: {data}")
        
        # 写入数据
        if ser.out_waiting > 0:
            # 获取要发送的数据
            send_data = input("Enter data to send: ")
            
            # 发送数据
            ser.write(send_data.encode())
            
            # 计算时间戳
            current_time = time.time() - start_time
            
            # 输出时间戳和发送的数据
            print(f"[{current_time:.3f}s] Sent: {send_data}")

使用此函数时,需要提供串口的端口号、波特率和超时时间。例如,可以使用以下代码在串口COM1上以9600波特率和1秒的超时时间运行函数:

serial_read_write("COM1", 9600, 1)

此函数将持续读取串口数据,并将其打印出来。同时,它还允许用户输入数据并将其写入串口。每个数据读取和写入操作都会附带一个时间戳,用于标记数据的接收和发送时间。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值