python实现485通讯_Python编程实现USB转RS485串口通信
---作者疆,未经允许,严禁转载,违权必究---
---欢迎指正,需要源码和文件可站内私信联系---
-----------点击此处链接至博客园原文-----------
功能说明:Python编程实现USB转RS485串口通信(发送数据、接收数据均为16进制格式)
运行环境:Windows7&Python3.7与Ubuntu14.04&Python2.7,宇泰UT-890A USB转RS-485/422串口连接线
文件下载:源码点击下载 vsl7
一、Windows7&Python3.7下Python编程实现USB转RS485串口通信
(1)驱动下载
解压驱动压缩包,选取..\390-11000880 V01\Driver\win xp server2003 2008 2012 Vista 7 8 8.1 10 32-64bit\中Autoinstaller_WHQL_CDM2.12.24_Win 2K, XP, Vista, 7, 8, 8.1, 10, 32_64bit.exe傻瓜式安装,可见USB转串口连接线与串口调试助手的使用。
(2)环境搭建
安装serial库,cmd中执行命令 pip3 install pyserial
(3)源码实现
#-*- coding:utf-8 -*-#Author: WUJiang#运行环境为Windows7&Python3.7
importserialimporttime
ser= serial.Serial("com3", 9600) #选择串口,并设置波特率
ifser.is_open:print("port open success")#hex(16进制)转换为bytes(2进制),应注意Python3.7与Python2.7此处转换的不同
send_data = bytes.fromhex('ff 01 00 55 00 00 56') #发送数据转换为b'\xff\x01\x00U\x00\x00V'
ser.write(send_data) #发送命令
time.sleep(0.1) #延时,否则len_return_data将返回0,此处易忽视!!!
len_return_data = ser.inWaiting() #获取缓冲数据(接收数据)长度
iflen_return_data:
return_data= ser.read(len_return_data) #读取缓冲数据
#bytes(2进制)转换为hex(16进制),应注意Python3.7与Python2.7此处转换的不同,并转为字符串后截取所需数据字段,再转为10进制
str_return_data =str(return_data.hex())
feedback_data= int(str_return_data[-6:-2], 16)print(feedback_data)else:print("portopen failed")
二、Ubuntu14.04&Python2.7下Python编程实现USB转RS485串口通信
(1)驱动下载
按linux对应驱动安装包中readme说明直接make报错,解决不了寻求宇泰科技官方技术支持,建议我更新系统内核(我拒绝!),后来提供了一个说明文件(FTDI.txt),经验证本机ubuntu14.04的4.4.0内核集成了该USB驱动,免去了安装麻烦。
(2)环境搭建
ubuntu14.04中预装了python-serial,其版本为2.6,需要卸载重新安装高版本的pyserial,否则会有相关接口错误,如‘serial’ object has no attribute 'is_open',执行以下命令,卸载原有python-serial,pip安装pyserial。
sudo apt-get remove python-serial
sudo apt-get install python-pip
sudo pip install pyserial
(3)源码实现
#-*- coding:utf-8 -*-#Author: WUJiang#运行环境为Ubuntu14.04&Python2.7
importserialimporttime
ser= serial.Serial("/dev/ttyUSB0", 9600) #选择串口,并设置波特率
ifser.is_open:print("port open success")#hex(16进制)转换为bytes(2进制),应注意Python2.7与Python3.7此处转换的不同
send_data = 'ff010055000056'send_data= send_data.decode('hex') #发送数据转换为b'\xff\x01\x00U\x00\x00V'
ser.write(send_data) #发送命令
time.sleep(0.1) #延时,否则len_return_data将返回0,此处易忽视!!!
len_return_data = ser.inWaiting() #获取缓冲数据(接收数据)长度
iflen_return_data:
return_data= ser.read(len_return_data) #读取缓冲数据
#bytes(2进制)转换为hex(16进制),应注意Python2.7与Python3.7此处转换的不同,并转为字符串后截取所需数据字段,再转为10进制
str_return_data = str(return_data.encode('hex'))
feedback_data= int(str_return_data[-6:-2], 16)print(feedback_data)else:print("portopen failed")
注意:Python2、Python3中bytes(2进制)与hex(16进制)相互转换有区别,以下摘自Python-bytes和hex字符串之间的相互转换。
python实现485通讯_Python编程实现USB转RS485串口通信相关推荐
- python教程很详细_Python编程入门教程:从入门到高级,非常详细
本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...
- USB、USB转串口、串口通信的区别与实现
Android如何监听USB插拔 全网独一无二的USB.USB转串口二合一通信SDK USB通信使用系统api,USB转串口通信使用第三方库usb-serial-for-android,串口通信使用G ...
- python进行usb通讯_Python实现树莓派USB串口通讯
→ USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...
- 用python做一个木马_Python编程简单的木马程序(转载于乌云中)
Python编程简单的木马程序 light·2015/01/26 10:07 0x00准备好了 本文的内容仅用于研究和研究,不得用于非法目的! 这一次,我们使用Python编写了一个简单的木马,它具有 ...
- python多态的例子_Python编程之多态用法实例详解
本文实例讲述了Python编程之多态用法.分享给大家供大家参考.具体分析如下: 什么是多态?顾名思义,多态就是多种表现形态的意思.它是一种机制.一种能力,而非某个关键字.它在类的继承中得以实现,在类的 ...
- python的速度问题_python编程如何提升速度篇
1. Python编程速度技巧 1.1. 最常见 * 一个最常见的速度陷坑(至少是俺在没看到网上这篇介绍时陷进去 过好些次的) 是: 许多短字串并成长字串时, 大家通常会用: 切换行号显示 1 sh ...
- python常用单词下载_python编程词汇
python编程词汇app非常实用的词汇辅助工具.python编程词汇app是面向程序开发人员打造的,汇集了各种编程语言备的词汇量,提供视频+语音+画笔+代码的交互的超强真实体验. 基本简介 pyth ...
- python 清空所有对象_Python编程思想(7):列表的增删改操作
李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...
- python解包操作_Python编程使用*解包和itertools.product()求笛卡尔积的方法
本文实例讲述了Python编程使用*解包和itertools.product()求笛卡尔积的方法.分享给大家供大家参考,具体如下: [问题] 目前有一字符串s = "['a', 'b'],[ ...
最新文章
- 同一个字符串hash值相同吗_图说:为什么Java中的字符串被定义为不可变的
- 计算机技术应用在教学中的优势,[浅谈多媒体在教学中的应用及优势] 多媒体教学的优势...
- 附005.Docker Compose文件详解
- org.apache.hadoop.ipc.Client: Retrying connect to server
- 为什么我不再推荐使用MVC框架?
- 地理空间数据云下载遥感影像
- ”教你如何抓住短视频时代风口,进行流量红利变现
- 英特尔®以太网700系列的动态设备个性化
- kux格式怎么转换成mp3_怎么把kux格式转换mp4、mp3?视频转换技巧介绍
- 局域网 git服务器 虚拟机,GitLab服务器傻瓜式搭建教程
- 3分钟教会你Graylog收集Windows主机日志
- 音频打不开 服务器运行失败,win7系统提示音频服务器未运行的解决方法
- 【C语言、C++基础编程题】【基础类题集】【平顶山学院ACM算法攻关部】
- 【图像超分辨】RDN
- mbedtls 安装与使用
- 【Unity面试】 C#语言基础核心 | 面试真题 | 全面总结 | 建议收藏
- 「Linux-基础」CentOS8 权限管理
- 创业明星|她曾是中国互联网界最年轻的首席运营官:不靠美貌一样征服
- 【Unity-怎么做一个FPS游戏】一.场景的搭建和角色的移动
- 使用signal函数自定义信号处理方式