以下是一个示例的串口助手代码,使用 Python 的 tkinter 库来创建基本的 UI 界面,并使用 pyserial 库来进行串口通信和数据发送。

import tkinter as tk
import serial

class SerialAssistant:
    def __init__(self, master):
        self.master = master
        self.master.title('Serial Assistant')
        
        # 创建串口选择下拉菜单
        self.port_label = tk.Label(master, text='Port:')
        self.port_label.grid(row=0, column=0)
        self.port_select = tk.StringVar(master)
        self.port_select.set('COM1')  # 默认选择COM1
        self.port_menu = tk.OptionMenu(master, self.port_select, 'COM1', 'COM2', 'COM3', 'COM4')
        self.port_menu.grid(row=0, column=1)
        
        # 创建波特率输入框
        self.baud_label = tk.Label(master, text='Baud Rate:')
        self.baud_label.grid(row=1, column=0)
        self.baud_entry = tk.Entry(master)
        self.baud_entry.insert(0, '9600')  # 默认波特率为9600
        self.baud_entry.grid(row=1, column=1)
        
        # 创建数据发送模块
        self.modules = []
        self.module_frame = tk.Frame(master)
        self.module_frame.grid(row=2, column=0, columnspan=2)
        self.add_module_button = tk.Button(master, text='Add Module', command=self.add_module)
        self.add_module_button.grid(row=3, column=0, columnspan=2)
        
        # 创建发送按钮
        self.send_button = tk.Button(master, text='Send', command=self.send_data)
        self.send_button.grid(row=4, column=0, columnspan=2)
        
        # 打开串口
        self.serial = None
        self.open_serial()
    
    def add_module(self):
        module = tk.Frame(self.module_frame)
        module.pack()
        
        data_label = tk.Label(module, text='Data:')
        data_label.grid(row=0, column=0)
        data_entry = tk.Entry(module)
        data_entry.grid(row=0, column=1)
        
        self.modules.append(data_entry)
    
    def send_data(self):
        if self.serial is not None and self.serial.is_open:
            for module in self.modules:
                data = module.get()
                if data:
                    self.serial.write(bytes.fromhex(data))
    
    def open_serial(self):
        port = self.port_select.get()
        baud = int(self.baud_entry.get())
        
        try:
            self.serial = serial.Serial(port, baud, timeout=0)
            print(f'Serial port {port} opened successfully.')
        except Exception as e:
            print(f'Failed to open serial port {port}: {str(e)}')

if __name__ == '__main__':
    root = tk.Tk()
    assistant = SerialAssistant(root)
    root.mainloop()

运行以上代码,将会打开一个窗口,可以选择串口和波特率,并添加多个数据发送模块。点击 Send 按钮后,程序将会将十六进制数据发送到已选择的串口中。请注意,需要在代码中根据实际的串口号进行选择。

Python 串口助手:创建多数据发送模块并支持十六进制数据

原文地址: https://www.cveoy.top/t/topic/pkjS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录