首页 > 代码库 > 使用python来调试串口

使用python来调试串口

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

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

 

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

import serialimport timeser = serial.Serial(/dev/ttyUSB0, 250000, timeout=1)print ser.isOpen()words=\x72\x02\x02\x52\x02\x12\x02\x02\x42\x02\x62\02while (1):        print "send "+words+" to remotes"        s = ser.write(words)        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>>> serSerial<id=0xa81c10, open=False>(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

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  

使用python来调试串口