串口是一种用于在计算机和外部设备之间进行通信的接口。Python 中可以使用 serial 库来创建串口,而配置串口参数则通常使用一个 config.ini 文件。本文将演示如何使用 Python 读取 config.ini 文件并创建串口。

目录

1. 创建 config.ini 文件

2. 读取 config.ini 文件

3.  创建串口

4. 修改配置文件的方法

小结        


1. 创建 config.ini 文件

首先需要创建一个 config.ini 文件,以配置串口参数。可以使用任何文本编辑器创建此文件,其中包含以下内容:

[serial]
port = COM1
baudrate = 9600
bytesize = 8
parity = N
stopbits = 1

 在这个示例中,我们使用了 COM1 作为串口名称,9600 作为波特率,8 作为数据位数,N 作为奇偶校验位,以及 1 作为停止位。

2. 读取 config.ini 文件

Python 中可以使用 configparser 库来读取 ini 文件。首先需要安装 configparser 库。在命令行中输入以下命令: 

pip install configparser

 然后,在 Python 中导入 configparser 库,使用 ConfigParser 类来读取 config.ini 文件中的串口参数:

import configparser

config = configparser.ConfigParser()
config.read('config.ini')

port = config.get('serial', 'port')
baudrate = int(config.get('serial', 'baudrate'))
bytesize = int(config.get('serial', 'bytesize'))
parity = config.get('serial', 'parity')
stopbits = float(config.get('serial', 'stopbits'))

 这里,我们首先创建了一个 ConfigParser 对象,然后使用 read 方法读取 config.ini 文件。然后,使用 get 方法获取 'serial' 部分中的各个参数值。注意,我们需要将 baudrate 和 bytesize 转换为整数,将 stopbits 转换为浮点数。

3.  创建串口

读取串口参数后,可以使用 serial 库来创建串口:

import serial

ser = serial.Serial(port, baudrate, bytesize, parity, stopbits)

 在这里,我们将从 config.ini 文件中读取的参数作为参数传递给 Serial 类的构造函数。

如果串口创建成功,可以打印一条消息:

print("创建串口成功")

 如果创建失败,则需要等待一段时间后重试。这可以使用递归来实现。当创建异常时,等待修改配置文件串口参数后继续读取配置文件并创建串口。以下是完整的代码:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# PROJECT MADE WITH: Qt Designer and PySide6/Pycharm
# @Created on:        2023/3/14 18:11
# @Author:            By Kevin
# @Filename:          creatSerialPort.py
import serial
import time
import configparser


def create_serial():
    config = configparser.ConfigParser()
    config.read('config.ini')  # 读取配置文件
    port = config.get('serial', 'port')
    baudrate = int(config.get('serial', 'baudrate'))
    bytesize = int(config.get('serial', 'bytesize'))
    parity = config.get('serial', 'parity')
    stopbits = float(config.get('serial', 'stopbits'))

    try:
        ser = serial.Serial(port, baudrate, bytesize, parity, stopbits)
        print("创建串口成功")
        return ser
    except serial.serialutil.SerialException:
        print("创建串口失败")
        time.sleep(5)
        return create_serial()


if __name__ == '__main__':
    create_serial()

4. 修改配置文件的方法

def modify_config(section, key, value):
    config = configparser.ConfigParser()
    config.read('config.ini')
    
    config.set(section, key, value)
    
    with open('config.ini', 'w') as configfile:
        config.write(configfile)

这个函数使用了 configparser 库来读取和写入 config.ini 文件。它包含三个参数:

  • section:要修改的节名称
  • key:要修改的键名称
  • value:要设置的新值

函数首先使用 ConfigParser 类读取 config.ini 文件,然后使用 set 方法将指定的键值对的值更新为新值。最后,使用 Python 内置的 open 函数打开 config.ini 文件,以写入更新后的配置文件内容。

modify_config('serial', 'baudrate', '115200')

 在这个示例中,我们将 config.ini 文件中 'serial' 节的 'baudrate' 键值更新为 '115200'。

小结        

以上程序中,首先使用configparser模块读取配置文件config.ini中的串口参数。然后使用Python标准库中的serial模块创建串口,如果创建成功则输出“创建串口成功”,否则输出“创建串口失败”并等待5秒钟后重新读取配置文件并创建串口。在程序的主函数中,调用create_serial函数来创建串口。