Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python串口数据采集并发送

作者:硝烟   发布日期:2025-09-25   浏览:39

import serial
import time

# 初始化串口对象
ser = serial.Serial(
    port='COM3',       # 端口号,根据实际情况修改
    baudrate=9600,     # 波特率
    bytesize=8,        # 数据位
    parity='N',        # 校验位
    stopbits=1,        # 停止位
    timeout=1          # 超时设置
)

def read_data():
    """从串口读取数据"""
    if ser.is_open:
        try:
            # 读取一行数据
            data = ser.readline()
            if data:
                return data.decode('utf-8').strip()  # 解码并去除首尾空格
            else:
                return "No data"
        except Exception as e:
            print(f"读取数据失败: {e}")
            return "Error"

def send_data(message):
    """通过串口发送数据"""
    if ser.is_open:
        try:
            # 发送数据,编码为字节流
            ser.write(message.encode('utf-8'))
            print(f"已发送: {message}")
        except Exception as e:
            print(f"发送数据失败: {e}")

if __name__ == "__main__":
    try:
        while True:
            # 采集数据
            received_data = read_data()
            print(f"接收到的数据: {received_data}")

            # 发送数据(例如每隔5秒发送一次)
            send_data("Hello from Python")
            time.sleep(5)
    except KeyboardInterrupt:
        print("程序已终止")
    finally:
        # 关闭串口
        if ser.is_open:
            ser.close()
            print("串口已关闭")

解释说明:

  1. 初始化串口对象:使用 serial.Serial 创建一个串口对象,并配置端口号、波特率等参数。
  2. 读取数据read_data 函数用于从串口读取一行数据,并将其解码为字符串格式。
  3. 发送数据send_data 函数用于将字符串编码为字节流并通过串口发送。
  4. 主程序逻辑:在 __main__ 中,程序会不断循环读取数据并打印出来,同时每隔5秒发送一次预定义的消息。
  5. 异常处理和资源释放:程序中包含了基本的异常处理机制,并在结束时确保关闭串口以释放资源。

上一篇:python ravel

下一篇:python拼接字符

大家都在看

python时间格式

python读取文件路径

staticmethod在python中有

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

python判断路径是否存在

python list.pop

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站