python串口通信迟缓_python串口通信

本文介绍了Python进行串口通信的基本操作,包括发送和接收字符串、十六进制显示及发送,强调了`pySerial`模块的使用。还讨论了串口的配置,如波特率、校验位、停止位等,并提供了读取和设置RTS/CTS、DTR等状态的方法。同时提到了`inWaiting()`和`readall()`函数在读取数据时的作用。最后,文章列举了`Serial`类的一些重要属性和方法。
摘要由CSDN通过智能技术生成

首先,应该安装serial模块pySeiral,还能开始后续的操作。在windows环境最好安装32位的python,否则可能无法安装pySerial,原因不明,如果有人解决该问题,可留言告诉我。

1、字符串的发送接收

短接串口的2、3脚,创建一个文本,如:

import serial

t = serial.Serial('com12',9600)

n = t.write('you are my world')

print t.portstr

print n

str = t.read(n)

print str或者你可以稍微添加几句,变成你任意输入后打印出你的键入信息。

import serial

t = serial.Serial('com12',9600)

print t.portstr

strInput = raw_input('enter some words:')

n = t.write(strInput)

print n

str = t.read(n)

print str其中,read(value)方法的参数value为需要读取的字符长度。 如果想要全部读取,提供两个方法:

1)inWaiting():监测接收字符。 inWaitting返回接收字符串的长度值,然后把这个值赋给read做参数。

2)readall():读取全部字符,使用该函数由于是阻塞模式,除非接受的字符串以EOF结尾或者超出缓冲区,否则函数不会返回。一般要结合超时设置,设置串口的timeout参数

import serial

ser = serial.Serial('com2')

while 1:

n = ser.inWaiting()

str = ser.read(n)

if str:

print strimport serial

ser = serial.Serial('com2',timeout=0.01) # open first serial port

while 1:

str = ser.readall()

if str:

print str

2,十六进制显示

十六进制显示的实质是把接收到的字符诸葛转换成其对应的ASCII码,然后将ASCII码值再转换成十六进制数显示出来,这样就可以显示特殊字符了。

在这里定义了一个函数,如hexShow(argv),代码如下:

import serial

def hexShow(argv):

result = ''

hLen = len(argv)

for i in xrange(hLen):

hvol = ord(argv[i])

hhex = '%02x'%hvol

result += hhex+' '

print 'hexShow:',result

t = serial.Serial('com12',9600)

print t.portstr

strInput = raw_input('enter some words:')

n = t.write(strInput)

print n

str = t.read(n)

print str

hexShow(str)

3,十六进制发送

十六进制发送实质是发送十六进制格式的字符串,如'\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值