---作者疆,未经允许,严禁转载,违权必究---

---欢迎指正,需要源码和文件可站内私信联系---

-----------点击此处链接至博客园原文-----------

功能说明: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串口通信相关推荐

  1. python教程很详细_Python编程入门教程:从入门到高级,非常详细

    本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...

  2. USB、USB转串口、串口通信的区别与实现

    Android如何监听USB插拔 全网独一无二的USB.USB转串口二合一通信SDK USB通信使用系统api,USB转串口通信使用第三方库usb-serial-for-android,串口通信使用G ...

  3. python进行usb通讯_Python实现树莓派USB串口通讯

    → USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...

  4. 用python做一个木马_Python编程简单的木马程序(转载于乌云中)

    Python编程简单的木马程序 light·2015/01/26 10:07 0x00准备好了 本文的内容仅用于研究和研究,不得用于非法目的! 这一次,我们使用Python编写了一个简单的木马,它具有 ...

  5. python多态的例子_Python编程之多态用法实例详解

    本文实例讲述了Python编程之多态用法.分享给大家供大家参考.具体分析如下: 什么是多态?顾名思义,多态就是多种表现形态的意思.它是一种机制.一种能力,而非某个关键字.它在类的继承中得以实现,在类的 ...

  6. python的速度问题_python编程如何提升速度篇

    1. Python编程速度技巧 1.1. 最常见 * 一个最常见的速度陷坑(至少是俺在没看到网上这篇介绍时陷进去 过好些次的) 是: 许多短字串并成长字串时, 大家通常会用: 切换行号显示 1 sh ...

  7. python常用单词下载_python编程词汇

    python编程词汇app非常实用的词汇辅助工具.python编程词汇app是面向程序开发人员打造的,汇集了各种编程语言备的词汇量,提供视频+语音+画笔+代码的交互的超强真实体验. 基本简介 pyth ...

  8. python 清空所有对象_Python编程思想(7):列表的增删改操作

    李宁老师已经在「极客起源」 微信公众号推出<Python编程思想>电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法.读者可以在「极客起源」 公众号中输入 160 ...

  9. python解包操作_Python编程使用*解包和itertools.product()求笛卡尔积的方法

    本文实例讲述了Python编程使用*解包和itertools.product()求笛卡尔积的方法.分享给大家供大家参考,具体如下: [问题] 目前有一字符串s = "['a', 'b'],[ ...

最新文章

  1. 同一个字符串hash值相同吗_图说:为什么Java中的字符串被定义为不可变的
  2. 计算机技术应用在教学中的优势,[浅谈多媒体在教学中的应用及优势] 多媒体教学的优势...
  3. 附005.Docker Compose文件详解
  4. org.apache.hadoop.ipc.Client: Retrying connect to server
  5. 为什么我不再推荐使用MVC框架?
  6. 地理空间数据云下载遥感影像
  7. ”教你如何抓住短视频时代风口,进行流量红利变现
  8. 英特尔®以太网700系列的动态设备个性化
  9. kux格式怎么转换成mp3_怎么把kux格式转换mp4、mp3?视频转换技巧介绍
  10. 局域网 git服务器 虚拟机,GitLab服务器傻瓜式搭建教程
  11. 3分钟教会你Graylog收集Windows主机日志
  12. 音频打不开 服务器运行失败,win7系统提示音频服务器未运行的解决方法
  13. 【C语言、C++基础编程题】【基础类题集】【平顶山学院ACM算法攻关部】
  14. 【图像超分辨】RDN
  15. mbedtls 安装与使用
  16. 【Unity面试】 C#语言基础核心 | 面试真题 | 全面总结 | 建议收藏
  17. 「Linux-基础」CentOS8 权限管理
  18. 创业明星|她曾是中国互联网界最年轻的首席运营官:不靠美貌一样征服
  19. 【Unity-怎么做一个FPS游戏】一.场景的搭建和角色的移动
  20. 使用signal函数自定义信号处理方式

热门文章

  1. 基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达
  2. 基于Python-turtle库绘制皮卡丘、多边形、星空
  3. Linux读写I2C设备I2C_RDWR用法
  4. android audio混音
  5. 机器学习人才的职业薪酬也发展
  6. Android自带类实现语音合成
  7. Linux的i2c驱动详解
  8. python训练过程是什么_学了这么久,你知道Python机器学习全流程是怎样的么?
  9. java怎么返回上一部,如何返回数据给上一个活动
  10. oracle服务没有了 原因,一例oracle服务无法启动的原因及解决方法