2014-09-30 82 views
0

我對Python比較陌生。我寫了一個腳本,需要添加需要通過USB串行端口發送到另一臺PC的觸發器。問題在於觸發器(在此代碼示例中爲2)從未在其他PC上的軟件上顯示。當我用print()命令檢查它時,它確實打印了一個值,但打印的值是兩個不同觸發器的相同數字。我已閱讀其他帖子,我搜索了互聯網,並嘗試了各種各樣的東西,但我沒有設法解決這個問題。這是我用來連接串口(COM3)的代碼。Python串行端口 - 無法寫入數據

#this part of code is defined at the beginning: 
import serial 
ser = serial.Serial(port=2, baudrate=9600) 
ser.close() 
#this part of the code later on to interface with the serial port: 
ser.open() 
ser.write(chr(2)) 
ser.close() 

也許任何人在這裏有任何建議,問題可能出在哪裏?謝謝!

+0

嘗試添加'timeout = 0'作爲參數到'serial.Serial' – ZWiki 2014-09-30 16:21:33

+0

我試着用超時和writeTimeout命令使用不同的值,但沒有任何影響 – user3884186 2014-10-02 10:11:56

回答

0

如果您還沒有,請檢查端口設置是否正確,例如9600,8,N,1。這些必須與遠程串行端口的設置相匹配。

檢查串行連接是否可以與終端仿真程序(如minicom(linux)或PuTTY(Windows))一起使用可能很有用。一旦確認可以建立連接並傳輸數據,就可以確定您正在連接到正確的本地端口,端口設置是否正確以及串行電纜是否正常工作。

+0

設置是正確的。我剛剛用膩子檢查過,它正確連接到端口... – user3884186 2014-09-30 16:08:58

+0

流量控制如何?您在使用膩子時是否設置了硬件或軟件流量控制(或者是否默認設置)?你可以嘗試用'ser.setRtsCts(True)'來設置RTSCTS。 – mhawke 2014-10-01 02:31:32

+0

該設備的默認值爲None。但即使使用RTSCTS設置,也沒有任何更改 – user3884186 2014-10-02 10:50:19