关于UI在写串口通讯程序是闪退的处理方法

最近做项目发现自己写的UI在有的电脑上,登录串口会闪退,经过仔细查找发现原来是大部分工程机上会装各种各样的驱动,串口驱动有的没装成功或驱动本身有问题,导致产生了一个无法访问的串口,我的UI程序在串口登录部分的程序是对所有的串口进行了轮询,当去连接这样的串口的时候导致串口冲突,程序直接被Kill掉。

我的电脑上的这样的串口名叫winachsf0,需要在注册表中把相关的硬件信息删掉。具体的位置如下图所示,把这个相关键删掉就解决问题了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴能回答你的问题。Python可以使用Tkinter来创建带有UI串口通讯程序,可以使用pyserial库来处理串口通讯。你可以从Python官网上获取关于Tkinter的文档,以及关于pyserial的文档。 ### 回答2: Python是一种高级编程语言,拥有丰富的第三方库,能够方便地实现串口通讯程序。以下是一个使用Python编的带有用户界面的串口通讯程序的简要步骤: 1. 导入必要的库: - serial库:用于连接和控制串口设备。 - tkinter库:用于创建用户界面。 - threading库:用于多线程通信。 2. 创建用户界面: - 使用tkinter库创建一个窗口和相应的控件,如标签、文本框、按钮等。 3. 初始化串口: - 使用serial库,打开需要通信的串口设备,并设置波特率、数据位、停止位、校验等参数。 4. 编串口函数: - 创建一个函数,用于从串口读取数据,并显示在用户界面上。 - 创建另一个函数,用于将用户界面上输入的数据发送到串口设备。 5. 启动线程: - 使用threading库创建两个线程,一个线程用于读取串口数据,另一个线程用于发送串口数据。 - 在用户界面上的按钮事件中启动这两个线程。 6. 创建事件循环: - 在主程序中使用tkinter库的mainloop()函数,启动一个无限循环,用于处理用户界面事件。 以上是一个基本的串口通讯程序的编步骤,当然在实际开发过程中,可能还需要添加一些错误处理串口参数设置等功能。希望以上内容对你有所帮助! ### 回答3: 使用Python编带有用户界面的串口通讯程序可以使用PySerial库和Tkinter库来实现。 首先,需要通过pip安装PySerial库和Tkinter库: ``` pip install pyserial pip install tk ``` 然后,编一个Python程序,导入PySerial库和Tkinter库,并创建一个窗口: ```python import serial import tkinter as tk window = tk.Tk() window.title("串口通讯程序") ``` 接下来,在窗口中创建串口相关的输入框、按钮和文本框: ```python # 串口号输入框 port_label = tk.Label(window, text="串口号:") port_label.pack(side=tk.LEFT) port_entry = tk.Entry(window) port_entry.pack(side=tk.LEFT) # 波特率输入框 baudrate_label = tk.Label(window, text="波特率:") baudrate_label.pack(side=tk.LEFT) baudrate_entry = tk.Entry(window) baudrate_entry.pack(side=tk.LEFT) # 打开串口按钮 open_btn = tk.Button(window, text="打开串口") open_btn.pack(side=tk.LEFT) # 用于显示串口数据的文本框 output_text = tk.Text(window) output_text.pack() ``` 然后,创建串口对象和相应的串口操作函数,并绑定打开串口按钮的点击事件: ```python serial_port = None def open_serial_port(): global serial_port port = port_entry.get() baudrate = baudrate_entry.get() try: serial_port = serial.Serial(port, baudrate) output_text.insert(tk.END, "成功打开串口\n") except: output_text.insert(tk.END, "无法打开串口\n") open_btn.config(command=open_serial_port) ``` 最后,添加一个循环,使程序能够持续运行,并启动Tkinter的主事件循环: ```python def read_serial_data(): global serial_port while True: if serial_port: data = serial_port.readline().decode() output_text.insert(tk.END, data) window.after(100, read_serial_data) window.mainloop() ``` 这样,一个带有用户界面的串口通讯程序就完成了。用户可以通过界面输入串口号和波特率,并点击打开串口按钮来打开指定的串口程序会实时监测串口数据,并将读取到的数据显示在文本框中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值