python实现串口

晚上花了一点时间,用python实现了一个简单的串口调试助手。我使用的python版本是3.4.

要用python实现串口,首先要装一个pserial模块。下载地址如下:

https://pypi.python.org/pypi/pyserial

clip_image002[4]

就下第一个就好了

 

        将下下来的压缩包解压。然后打开终端。进入到解压的目录下面

clip_image004[4]

下面有一个setup.py的文件。

 

然后输入命令

clip_image006[4]

模块就自动安装了。

然后就开始写程序了。程序很简单,我这里还加入了点小界面。界面用的是easygui模块来写的。

关于easygui,可以看看小甲鱼的网站,介绍得很详细。

http://bbs.fishc.com/forum.php?mod=viewthread&tid=46069&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403

 

   代码

import serial
from easygui import *
 
com_choices = ('com1','com2','com3','com4','com5','com6','com7')
baud_choices = ('115200','256000')
 
com = choicebox(msg='请选择COM口',title='COM端口选择',
choices=com_choices)
baud = choicebox(msg='请选择波特率',title='波特率选择',
choices=baud_choices)
ser = serial.Serial(com)  #设置com端口
ser.setBaudrate(baud)       #设置波特率
ser.setByteSize(8)          #设置数据位宽
ser.setStopbits(1)          #设置停止位
 
while(1):
    s = enterbox(msg='请输入发送的内容,按发送键发送',title='串口发送助手',strip=True,default='@') #得到发送的内容
    print('发送的内容是:',s)
    length = len(s)
    if s == '@':
        break
    ser.write(s.encode())
    s = ser.read(length)
    print('读取的内容是:',s)
ser.close()

   从代码可以很简单的看出,serial模块是怎么用的。

主要是调用那几个函数。

 

还有一个函数ser.isOpen()  是检测串口是否打开的,打开为True,没有打开为False

这里要注意,发送数据是用ser.write(s) s是发送的字符串数据,记得后面要有encode()。不然程序会报错。

 

下面是程序执行演示图:

  clip_image008[4]

选择com端口的界面

clip_image010[4]

选择波特率的界面

 

clip_image012[4]

发送数据和接收数据

 

因为easygui模块,暂时我还不会怎么把多个合在一个界面,所以就只能一个界面一个界面的输出,有点别扭。不过功能可是能实现的。

 

python实现串口确定简单多了,比VC都还要简单。就只需要pyserial模块,调用相应的函数即可了。

 

此条目发表在python, 编程语言分类目录,贴了, , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。