基於Python的串口通信(1)

基於Python的串口通信(1)

5 人贊了文章

基於Python的串口通信

1 Pyserial

1.1 安裝pyserial

1.1.1 source安裝

(1) 下載pySerial

① 2.6版本:

pypi.python.org/package

② 2.7版本

pypi.python.org/package

③ 最新版本(目前為3.1版本):

pypi.python.org/pypi/py

(2) 解壓

① 命令解壓

cd /xxx/xxx/pyserial-2.6.tar.gz(以2.6版本為例,切換到相關文件所在目錄)tar zxvf pyserial-2.6.tar.gz

② 手動解壓(Mac下像.zip類的格式一般會在Safari下載完成後自動解壓)

(3) 安裝serialmodule

cd /xxx/xxx/pyserial-2.6(切換到解壓後的文件所在目錄)sudo python setup.py install(加sudo以避免許可權問題:」Permission denied...」)

1.1.2 pip安裝

(1) 方法一:

sudo pip install pyserial

註:上圖中之所以寫成pip2是因為系統里除了自帶的Python2外,還裝了Python3(pip3為默認pip),而安裝是在Python2環境下進行的。

(2) 方法二:

sudo apt-get install -y python-pipsudo pip install -y pySerial

1.2 serial通信測試

Terminal中進行如下測試:

Last login: Mon Aug 8 09:23:28 on ttys000FUCK:~ Weiding$ ls /dev/tty.usb*/dev/tty.usbmodem1431FUCK:~ Weiding$ python -m serial.tools.list_ports/dev/cu.Bluetooth-Incoming-Port/dev/cu.Bluetooth-Modem/dev/cu.usbmodem14313 ports foundFUCK:~ Weiding$ pythonPython 2.7.10 (default, Jul 14 2015, 19:46:27)[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> import serial>>> ser = serial.Serial(/dev/tty.usbmodem1431,115200,timeout=0.5)# Windows下只是埠名不同(COMX):ser = serial.Serial("COM6", 115200)>>> serSerial<id=0x10f058cd0, open=True>(port=/dev/tty.usbmodem1431, baudrate=115200, bytesize=8, parity=N, stopbits=1, timeout=0.5, xonxoff=False, rtscts=False, dsrdtr=False)>>> ser.isOpen()True>>> ser.write(A)1>>> ser.read()>>> ser.inWaiting()0>>> ser.write([FSN])5>>> ser.inWaiting()23>>> ser.read()<>>> ser.inWaiting()22>>> ser.read(22)fsn-DLC51520U1PG2DVAL>>>> ser.inWaiting()0>>> ser.close()>>> serSerial<id=0x10f058cd0, open=False>(port=/dev/tty.usbmodem1431, baudrate=115200, bytesize=8, parity=N, stopbits=1, timeout=0.5, xonxoff=False, rtscts=False, dsrdtr=False)>>>


推薦閱讀:

做了個簡陋的陰陽師懸賞任務查詢網站
怎樣自學Python?
python任務調度之schedule
Python 3新特性匯總(一)

TAG:Python | 串口 | 通信 |