首先,应该安装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,十六进制发送
十六进制发送实质是发送十六进制格式的字符串,如'\