# [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