# [Python串口编程](http://www.cnblogs.com/yinguo/p/4667350.html)
[TOC]
python的串口网上有很多例子,这里了只是把认为好的整理到一起。
首先,应该安装serial模块,还能开始后续的操作。我用的python2.6,serial模块可以在这里下载安装[serial模块下载](http://download.csdn.net/detail/xhao014/4355886)
### 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():读取全部字符。
===================================================================================================================================
### 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 十六进制发送
十六进制发送实质是发送十六进制格式的字符串,如'\xaa','\x0b'。重点在于怎么样把一个字符串转换成十六进制的格式,有两个误区:
1)'\x'+'aa'是不可以,涉及到转义符反斜杠
2)'\\x'+'aa'和r'\x'+'aa'也不可以,这样的打印结果虽然是\xaa,但赋给变量的值却是'\\xaa'
这里用到decode函数,
> list='aabbccddee'
> hexer=list.decode("hex")
> print hexer
需要注意一点,如果字符串list的长度为奇数,则decode会报错,可以按照实际情况,用字符串的切片操作,在字符串的开头或结尾加一个'0'
假如在串口助手以十六进制发送字符串"abc",那么你在python中则这样操作“self.l_serial.write(”\x61\x62\x63") ”
当然,还有另外一个方法:
> strSerial = "abc"
> strHex = binascii.b2a_hex(strSerial)
> #print strHex
> strhex = strHex.decode("hex")
> #print strhex
> self.l_serial.write(strhex);
同样可以达到相同目的。
那么,串口方面的就整理完了。
- 空白目录
- serial
- serial 整理
- hex to str
- Python3 字符编码
- 字符串编码与Python 3编码
- python3中bytes和string之间的互相转换
- Python3 字符编码
- python整数、字符串、字节串相互转换
- python整数、字符串、字节串相互转换
- python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)
- python中pyserial模块使用方法
- 谈谈 Python 程序的运行原理
- flask
- Flask 在 Debug 模式下初始化2次
- Flask中向前端传递或者接收Json文件的方法
- 使用 Python 和 Flask 设计 RESTful API
- 使用 Flask-RESTful 设计 RESTful API