在Win7 64位上使用Python进行串口通信
2017-08-27 11:55
513 查看
Python非常适合写一些测试的脚本,如快速的串口通信测试等。如果使用VC++ QT开发,可能用时较多,使用python,如果掌握使用方法,可以直接读写测试,配合设备或是串口助手,很快验证与实现。
Python有没有现成的串口API直接调用呢?经过实践验证,需要安装一个叫 Pyserial的组件即可。这个可以在github上下载。下载地址为:
https://github.com/pyserial/pyserial
在windows 7 64bit 上可以使用吗?当然可以使用,我安装的python3.5为64位的。把下载后的文件,其中有一个serial的文件夹,拷贝到python35安装路径, C:\Python35\Lib\site-packages\serial
网上可以搜一下windows的安装包,安装完也是:C:\Python35\Lib\site-packages\serial ,可以用最新的版本,替换即可。
测试的方法:在python IDE里测试:
>>> import serial
这里如果报错,是python版本与pyserial版本没有配合好。如果正常,不返回,即可以导入serial模块。
>>> ser=serial.Serial("COM5",115200)
这里为COM5,115200的波特率。如果打不开,请检查安装环境。
>>> ser.write('hello,serial test'.encode())
17
发送测试(如果返回字节数,说明返回成功),这里需要转换一个编码为字节。
以上测试,可以使用现在的设备或是串口助手,如安装Virtual Serial Port Driver 7.2 虚拟串口软件,设置一对串口,进行自发自收的测试。
>>> print(ser.readline())
b'abcdefg\r\n'
这里是串口接收,有接收的超时。设备或是串口助手发送一个字符串,以回车换行结束,这里就可以收到打印出来。
也可以用ser.read(),这里只接收一个字符来实现。
上面已经实现了基本的串口操作。
关闭串口为:
>>> ser.close()
如果使用python,一般写个py文件,就像windows bat 批处理一样,这是python强大的地方。如果写一个py脚本呢?其实只要把上面的命令,一条条写下来,就是一个脚本,测试如下:
Python有没有现成的串口API直接调用呢?经过实践验证,需要安装一个叫 Pyserial的组件即可。这个可以在github上下载。下载地址为:
https://github.com/pyserial/pyserial
在windows 7 64bit 上可以使用吗?当然可以使用,我安装的python3.5为64位的。把下载后的文件,其中有一个serial的文件夹,拷贝到python35安装路径, C:\Python35\Lib\site-packages\serial
网上可以搜一下windows的安装包,安装完也是:C:\Python35\Lib\site-packages\serial ,可以用最新的版本,替换即可。
测试的方法:在python IDE里测试:
>>> import serial
这里如果报错,是python版本与pyserial版本没有配合好。如果正常,不返回,即可以导入serial模块。
>>> ser=serial.Serial("COM5",115200)
这里为COM5,115200的波特率。如果打不开,请检查安装环境。
>>> ser.write('hello,serial test'.encode())
17
发送测试(如果返回字节数,说明返回成功),这里需要转换一个编码为字节。
以上测试,可以使用现在的设备或是串口助手,如安装Virtual Serial Port Driver 7.2 虚拟串口软件,设置一对串口,进行自发自收的测试。
>>> print(ser.readline())
b'abcdefg\r\n'
这里是串口接收,有接收的超时。设备或是串口助手发送一个字符串,以回车换行结束,这里就可以收到打印出来。
也可以用ser.read(),这里只接收一个字符来实现。
上面已经实现了基本的串口操作。
关闭串口为:
>>> ser.close()
如果使用python,一般写个py文件,就像windows bat 批处理一样,这是python强大的地方。如果写一个py脚本呢?其实只要把上面的命令,一条条写下来,就是一个脚本,测试如下:
import serial ser=serial.Serial("COM5",115200,timeout=0.5) for i in range(0,100-1): ser.write('hello\r\n'.encode()) print(ser.readline()); ser.close()
相关文章推荐
- 在Win7 64位上使用Python进行TCP通信_Server端
- Python使用pyserial进行串口通信
- Python使用pyserial进行串口通信
- win7 64位下 使用DOSBOX 进行汇编程序的编写调试
- 使用Visual C++进行串口通信编程
- Win7,64位,Python中对图片进行 Base64 编码和解码
- win7 64位 中使用VS2010进行远程调试
- 怎样在64位win7下使用silktest对注册表进行测试
- Win7,64位,Python使用Beautiful Soup 4抓取网易云音乐歌单中的歌曲
- 64位win7中使用vs2013为python3.4安装pycrypto-2.6.1插件报Unable to find vcvarsall.bat异常解决方式
- 使用WindowsAPI和多线程进行串口通信[2]
- 使用python pyserial模块串口通信
- 使用Visual C++进行串口通信编程[一]
- Ubuntu虚拟机下使用cutecom进行串口通信
- Win7,64位,Python使用reportlab画图并生成为pdf文件
- 64位 win8.1下 python串口通信模块安装
- 使用Visual C++进行串口通信编程--2
- 使用Visual C++进行串口通信编程--1
- 使用Visual C++进行串口通信编程
- 使用Visual C++进行串口通信编程