【实例简介】tkinter的GUI,pyserial模块

【实例截图】

【核心代码】

'''

if(self.Status == True):

self.ser = serial.Serial(self.port.get(), int(self.baud.get()), timeout=30)

self.Btn.set('关闭')

self.Status = False

t = threading.Thread(target=self.get_thread)

t.start()

else:

self.Btn.set('打开')

self.Status = True

self.ser.close()

'''

import tkinter as tk

from tkinter import ttk

import serial

import threading

class Scom:

def get_thread(self):

while True:

if(self.Status == False):

n = self.ser.inWaiting()

if n:

self.get_data.insert('end', self.ser.read(n).decode('utf-8'))

else:

break

print('退出线程')

def dakai(self):

if self.Status == True:

self.ser = serial.Serial()

self.ser.port = self.port.get()

self.ser.baudrate = int(self.baud.get())

self.ser.timeout = 2

self.ser.open()

if self.ser.isOpen():

self.Status = False

self.thread_read = threading.Thread(target=self.get_thread)

self.thread_read.start()

self.Btn.set('关闭')

else:

self.Status = True

self.Btn.set('打开')

self.thread_read.join()

self.ser.close()

def send(self):

self.ser.write(self.sendstr.get().encode('utf-8'))

def __init__(self):

__win = tk.Tk()

__win.title('串口工具')

__win.geometry('300x300')

__win.resizable(False, False)

tk.Label(__win, text='端口号').grid(row=1, column=1)

tk.Label(__win, text='波特率').grid(row=2, column=1)

self.port = tk.StringVar()

__plist = ttk.Combobox(__win, textvariable=self.port, width=12, state='readonly')

__plist['values'] = ('COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9')

__plist.current(0)

__plist.grid(row=1, column=2)

self.baud = tk.StringVar()

__blist = ttk.Combobox(__win, textvariable=self.baud, width=12, state='readonly')

__blist['values'] = ('9600', '19200', '38400', '115200')

__blist.current(3)

__blist.grid(row=2, column=2)

self.Btn = tk.StringVar()

self.Btn.set('打开')

tk.Button(__win, textvariable=self.Btn, command=self.dakai, width=6).grid(row=3, column=1)

tk.Button(__win, text='发送', command=self.send, width=6).grid(row=4, column=1)

self.sendstr = tk.StringVar()

tk.Entry(__win, textvariable=self.sendstr, width=20).grid(row=4, column=2)

tk.Label(__win, text='接收数据').grid(row=5, column=1)

self.frm = tk.Frame(__win)

self.frm.grid(row=6, column=2)

self.get_data = tk.Text(self.frm, height=10, width=20)

self.bar = tk.Scrollbar(self.frm)

self.bar.config(command=self.get_data.yview)

self.get_data.config(yscrollcommand=self.bar.set)

self.bar.pack(side=tk.RIGHT, fill=tk.Y)

self.get_data.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)

self.Status = True

__win.mainloop()

Scom()

python串口调试助手_python 串口调试工具源码相关推荐

  1. 66个Python练手项目,附源码

    前言: 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦,不用多说大家都知道学编程语言一定要做项目才行. 这里整理了66个Python实战项目列表,都有完整且详细的教程,你可以从 ...

  2. python redis事务_python redis事务源码及应用分析

    在多个客户端同时处理相同的数据时,不谨慎的操作很容易导致数据出错.一般的关系型数据库中有事务保证了数据操作的原子性,同样Redis中也设置了事务,可以理解为"将多个命令打包,然后一次性.按顺 ...

  3. 用python表白代码_python浪漫表白源码

    要知道我们程序猿也是需要浪漫的,小博我之前在网上搜寻了很多代码,确发现好多都不是最新的,所以自己就整理了一下代码,现在与广大博友们分享下 我们需要用到的包 使用pip install +(包名) tu ...

  4. python程序实例源代码-Python 神经网络手写识别实例源码

    深度学习和神经网络对很多初学者来说都是摸不着头脑,今天分享一个完整的手写识别的实例,学习和理解了这个实例代码和过程就基本上掌握了神经网络. 1.构建神经网络类 network_claas.py #!/ ...

  5. 熬夜整理出了70个清华大佬都在用的Python经典练手项目【附源码】

    我们都知道,不管学习那门语言最终都要做出实际的东西来,而对于编程而言,这个实际的东西当然就是项目啦,不用我多说大家都知道学编程语言做项目的重要性. 于是,小编熬了几个通宵,终于整理出了70个清华大佬都 ...

  6. c调用易语言串口,易语言串口API源码

    易语言串口API源码系统结构:ReadCommPure,BuildCommDCB,CreateFilea,关闭句柄a,SetCommState,ReadFileA,GetCommState,Write ...

  7. 前端进阶-手写Vue2.0源码(三)|技术点评

    前言 今天是个特别的日子 祝各位女神女神节快乐哈 封面我就放一张杀殿的帅照表达我的祝福 哈哈 此篇主要手写 Vue2.0 源码-初始渲染原理 上一篇咱们主要介绍了 Vue 模板编译原理 它是 Vue ...

  8. 教你用python制作人脸卡通画(附源码)

    教你用python制作人脸卡通画(附源码) 效果展示: 让我们开始学习之路: 原理:利用第三方人脸接口将图像人脸化 第三方接口注册地址:https://ai.minivision.cn/#/login ...

  9. 精仿交易猫手游1:1源码可运营 支持二维码收款

    介绍: 精仿交易猫手游1:1源码可运营 支持二维码收款 源码安装需要asp主机 后台地址/admin 帐号admin密码admin 网盘下载地址: https://zijiewangpan.com/w ...

  10. 白鹭引擎egert+PHP后端手游宠物小精灵题材源码

    白鹭引擎egert+PHP后端手游宠物小精灵题材源码下载 安卓+IOS+H5三端同步完整源码,MYSQL数据库,内含完整策划文档,卡牌类型的竖版游戏源码.前端是type script代码 后端是 PH ...

最新文章

  1. android6.0 wifi流程,[RK3288][Android6.0] WiFi之从Linkspeed看获取流程
  2. Android—热修复实践
  3. droidbox官网
  4. X++中对字符串进行操作的函数
  5. 剑指offer面试题09. 用两个栈实现队列(队列、栈)
  6. wpf之代码设置背景图片
  7. java url解码_URL的编码和解码
  8. Nginx入门5:搭建静态资源服务器;(入门级演示,没多少内容;)
  9. AutoCAD二次开发——引线标注
  10. 【MOOC手写体】王文敏教授.《人工智能原理》 第10章 机器学习的任务 Part5 C10.2 Classification 分类...
  11. 计算机计时器原理,定时器和计数器-微机原理与接口技术.DOC
  12. 获取高匿代理ip的想法思路
  13. 集线器,路由器,交换机的作用和区别是什么
  14. Arduino初初教程8——模拟量输出
  15. 在线时间戳 (Unix) 转换工具
  16. SCT2450,SCT2450Q,降压DCDC
  17. ArcGIS地质图矢量化技巧概要
  18. fluent并行 linux_Fluent17.2在基于Linux下PC集群的并行计算.pdf
  19. 由三维面部先验指导的面部超级分辨率 (读书笔记)
  20. 谷歌54亿收购Mandiant:提高自身谷歌云竞争性

热门文章

  1. 用 Alan 和 Neovis.js 实现全新的 Doctor.ai
  2. 恶意程序新趋势-钻粪坑+数签
  3. 测井曲线wis文件格式转换为ASCII文本格式小软件的开发(C与Python结合开发)
  4. 小型局域网环境下搭建的文件中转系统
  5. 2023年安徽大学科学技术哲学考研上岸前辈备考经验指导
  6. Redis 入门指南
  7. 区块链“搅局”中介风云
  8. 计算机趣味知识竞赛策划,大学生趣味知识竞赛活动的策划书
  9. Delphi 操作Excel方法大全
  10. EasyClick 原生UI教程