展开全部

串口模块的波特率比较32313133353236313431303231363533e4b893e5b19e31333363396463特别,找了几个串口工具都不支持。。。所以,干脆用python自己来写了,其实已经好奇好久了,别人的工具各种不顺手。

需要pyserial的支持,兼容各种平台,不需要新编译二进制文件。

先贴一个定时发送的代码:

import serialimport time

ser = serial.Serial('/dev/ttyUSB0', 250000, timeout=1)print ser.isOpen()

words="gggggggggggggggg"while (1):        print "send 256x\""+words+"\" to remotes"

startTime = time.time()

times = 256        while (times):

times -= 1

s = ser.write(words)

endTime = time.time()        print "use time: "+str(endTime-startTime)        print ""

time.sleep(5)

ser.close()

然后是一些其它的方法:

1. 使用序号打开串口:ser = serial.Serial(0) 。but,怎么确定串口的序号???

2. 查看串口的名称,啊哈,用1的方法打开串口后,你可以产看串口的名字:print ser.portstr

3. 先例化一个实体,再打开:

>>> ser = serial.Serial()>>> ser.baudrate = 19200

>>> ser.port = 0>>> ser

Serial(port='COM1', baudrate=19200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)>>> ser.open()>>> ser.isOpen()

True>>> ser.close()>>> ser.isOpen()

False

好多人问 windows 下面提示设备不存在!亲,windows 下面的串口设备名不一样的啊,上面的代码里面 COM1 就是 windows 下面的设备。

4. 读取数据的几种方式

>>> ser = serial.Serial('/dev/ttyS1', 19200, timeout=1)>>> x = ser.read()          # read one byte>>> s = ser.read(10)        # read up to ten bytes (timeout)>>> line = ser.readline()   # read a '/n' terminated line>>> ser.close()

其中,如果只是串口调试,直接ser.read(1000),这样会把读到的值直接打印到屏幕上。

5.所有参数

ser = serial.Serial(

port=None,              # number of device, numbering starts at# zero. if everything fails, the user# can specify a device string, note# that this isn't portable anymore# if no port is specified an unconfigured# an closed serial port object is createdbaudrate=9600,          # baud ratebytesize=EIGHTBITS,     # number of databitsparity=PARITY_NONE,     # enable parity checkingstopbits=STOPBITS_ONE,  # number of stopbitstimeout=None,           # set a timeout value, None for waiting foreverxonxoff=0,              # enable software flow controlrtscts=0,               # enable RTS/CTS flow controlinterCharTimeout=None   # Inter-character timeout, None to disable)

6. exception:serial.SerialException

另一个完整收发的例子,单片机数据以TLV(Type,Length,Value)格式发上来

#!/usr/bin/env python

# it's a program of luo, piedgogo@sina.com

import serialimport arrayimport osimport signalfrom time import sleep

flag_stop = Falsedef onsignal_int(a,b):    print "sigint!"

global flag_stop

flag_stop = True

signal.signal(signal.SIGINT, onsignal_int)

signal.signal(signal.SIGTERM, onsignal_int)

ser = serial.Serial('/dev/ttyUSB0', 9600, timeout = 0.001)print "serial.isOpen() =",ser.isOpen()

cmd_send = "7b02000129cc00c80378290400640000cc7d0d0a"cmd_send = cmd_send.decode("hex")

stop = "7b04047d0d0a"stop = stop.decode("hex")

cmd_back = ""cmd_length = 0x00cmd_count = 0x00s = ser.write(cmd_send)while True:

sleep(0.1)

if flag_stop:                # read data until Ctrl+c

ser.write(stop)            # send cmd stop before exit

print "reset cmd has been sent!"

sleep(0.05)        break

text = ser.read(1)          # read one, with timout

if text:                    # check if not timeout

n = ser.inWaiting()     # look if there is more to read

if n:

text = text + ser.read(n) #get it

cmd_back = cmd_back + text

text = ""

if len(cmd_back) < 2:        # go back if no enough data recvd

continue

if cmd_length == 0x00:                        # new loop

cmd_length = ord(cmd_back[1])            # Type(1 byte),Length of Value(1 byte),Value

print "new cmd length,",cmd_length

if (cmd_length + 0x02) > len(cmd_back):        # do nothing until all bytes is recvd

continue

# so far, we have got a full cmd

hex_list = [hex(ord(i)) for i in cmd_back]    # more readable than data.encode("hex")

print "In buffer:",hex_list

cmd_back = cmd_back[cmd_length+2:]            # remove this cmd(TLV) from buffer

cmd_length = 0

cmd_count += 1

print "==> %d cmds recvd."%(cmd_count)    print "-------------"

ser.close()

——————

python串口模块找不到_有没有python的串口库相关推荐

  1. python好多模块和c相识_快速实现python c扩展模块

    1  python扩展模块的组成 在python中,对于一些和系统相关的模块或者对性能要求很高的模块,通常会把这个模块C化.扩展模块中主要包含下面几个部分: init函数,函数名为:init+模块名, ...

  2. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用

    背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象:2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目时 ...

  3. python cv模块_Python cv包_程序模块 - PyPI - Python中文网

    Cv 检查python模块的版本. 查询pypi并在所有可用版本中查找.__version__. 如果版本已经存在,则会引发错误. 在ci中很有用,可以记住更改库版本. 有关python模块版本控制的 ...

  4. python repusts模块_Python tslearn包_程序模块 - PyPI - Python中文网

    tslearn是一个python包,它为分析时间序列提供机器学习工具. 这个包基于scikit-learn.numpy和scipy库. 依赖关系Cython numpy numba scipy sci ...

  5. python renamer模块_Python smart-image-renamer包_程序模块 - PyPI - Python中文网

    使用包含在中的exif数据智能地批量重命名图像的脚本 安装 要安装智能图像重命名程序: 推荐的方法是通过pip.pip install smart-image-renamer 否则像其他python包 ...

  6. python 化学模块_Python chemif包_程序模块 - PyPI - Python中文网

    实施 解决这个问题的方法是使用一个while循环的递归下降算法.这个循环的基本结构是:todo = [[item1, processing_data],[item2, processing_data] ...

  7. python导入模块找不到什么原因_python模块以及导入出现ImportError: No module named 'xxx'问题...

    python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用 如果你 ...

  8. python pygame模块怎么写游戏_使用 Python 和 Pygame 模块构建一个游戏框架

    这系列的第一篇通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏 ...

  9. python函数的使用方法图解_零基础python之4函数重用-函数与模块(附详细的步骤和程序)...

    4代码重用--函数与模块 重用代码是构建一个可维护系统的关键. 代码组是Python中对块的叫法. 对之前的vowels代码功能创建一个函数名为search_for_vowels( ) 在函数调用时结 ...

  10. 学了python能找人吗_只学python能找工作吗

    Python掀起了一股外行人的学习热潮,简单易学,又无所不能.信誓旦旦报了培训班,亦或是购买了课程自学,一段时间后自认为掌握了Python,出去找工作却碰了一鼻子灰.到底是怎么一回事呢? 半路出家学弹 ...

最新文章

  1. Java并发编程--ReentrantReadWriteLock
  2. Leetcode-520. 检测大写字母
  3. 深度学习-Tensorflow2.2-图像处理{10}-图像语义分割-23
  4. MRJob 极速入门教程,使用Python玩转Hadoop
  5. 数据库:Redis数据库优点介绍
  6. ODP 使用 ArrayBind 时可能会遇到的巨坑 'System.IConvertible' 的解决方法
  7. as2的Key.isDown方法在as3的代替
  8. c语言位运算测试题及答案,[原创] 位运算和bit位操作程序题目答案 -- 谭浩强C语言习题...
  9. 黑客泄露50多万服务器、路由器和物联网设备的密码
  10. MongoDB 副本集
  11. 07_封装丶静态和工具类
  12. codeforce 贪心1
  13. 【GPU精粹与Shader编程】(六) 《GPU Gems 3》:真实感皮肤渲染技术总结
  14. Android系统基础(03) Android系统源码下载
  15. linux系统取消时间同步,linux下时间同步的两种方法分享
  16. 罗马仕荣获中国质量认证中心、CESI颁发的全国首批“双新认证”证书
  17. VS2017-C++-使用CSpreadSheet写EXCEL
  18. 可能是最全的人工智能入门书单(附PDF链接)
  19. 通达信地量指标公式 启涨地量买点选股指标天眼地量指标
  20. 电子签章怎么操作_电子签章合同是否有效

热门文章

  1. c# 定义委托和使用委托(事件的使用)
  2. [AIR] 获取U盘,打开U盘
  3. MVC 3 数据验证 Model Validation 详解
  4. VC6.0代码移植到VS2008运行时乱码问题解决
  5. python range 和 xrange 区别
  6. 关于虚函数重载遇到的怪问题 -- 为什么经常调用了基类的函数
  7. 网页下载CAB文件总结
  8. 安装 samba 记录
  9. 【BERT实践】看不懂bert没关系,用起来so easy!
  10. 小白跟学系列之手把手搭建NLP经典模型-2(含代码)