2013-07-29 114 views
2

模塊pySerial提供了一個接口與串行設備進行通信。然而,看着一個串行設備的配置,例如/dev/ttyS1,有很多事情來配置:如何用pySerial在python中配置tty?

stty -F /dev/ttyS1 -a 
speed 1200 baud; rows 0; columns 0; line = 0; 
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; 
parenb -parodd cs7 -hupcl cstopb cread clocal -crtscts 
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8 
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 -isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke 

我在參數-parodd cs7特別感興趣。有沒有辦法從python中配置這個參數,還是我必須調用外部命令來執行此操作(如stty -F /dev/ttyS1 ...)?

回答

2

是的,你甚至可以配置聲明後

ser = serial.Serial('/dev/ttyS1', 19200, timeout=1, parity=serial.PARITY_ODD) 

ser.parity = serial.PARITY_EVEN 

ser.bytesize = serial.SEVENBITS 
+0

你的答案是正確的,但一個只可「想」是'-parodd cs7'是關係到奇偶校驗和bytesize。您忘記提及將'bytesize'設置爲'serial.SEVENBITS'。 – Alex

+0

是的。補充說。這更多的是一般性答案,如何用pyserial來設置tty的東西。 – Jiminion