基於Python的串口通信(1)
5 人贊了文章
基於Python的串口通信
1 Pyserial
1.1 安裝pyserial
1.1.1 source安裝
(1) 下載pySerial
① 2.6版本:
http://pypi.python.org/packages/source/p/pyserial/pyserial-2.6.tar.gz
② 2.7版本
http://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz
③ 最新版本(目前為3.1版本):
https://pypi.python.org/pypi/pyserial
(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
(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新特性匯總(一)