2015-06-25 108 views
0

我通過串口將PIC與Raspberry PI連接起來。我的max485發送和接收使能引腳由gpio引腳控制。我收到的數據已成功打印。但它沒有執行所需的功能。無法識別串行接收數據

while True: 
    GPIO.output(repin, False) 
    port.flushInput() 
    time.sleep(.oo5) 
    port.write(bytes(address)) 
    time.sleep(.01) 
    GPIO.output(repin, Ture) 
    port.flushInput() 
    data=port.readline() 
    if data: 
     address=address+1 
     if data == "ok" : 
     print "reached" 
     print data 
    if not data: 
     print "no data" 

當我收到確定。它打印「確定」,但沒有打印「達到」。當數據未收到時,它將打印一個空白值而不是「無數據」。

+0

也許有可能您收到的字符串包含終止CR,LF或NULL。試着專門比較前兩個字符。 –

+0

您的代碼以「Ture」開頭。我想它應該是「而真」? –

+0

當data = port.read(2)被使用時,它工作正常。但我需要使用readline()。我的數據可能是2或3字節長。@羅傑羅蘭德 – user007

回答

1

使用調試器在PIC和監控PIC UART寫寄存器沒有什麼錯在你的代碼。如果您正確寫入PIC程序,則問題來自max485.connect雙絞線電纜接地的正確終端電阻,並具有適當的電阻。

+0

更換電阻器後我會通知你@Akash Nil – user007

+0

通過將A&B接地並將4.7k串口連接到它們,問題得以解決。謝謝。 – user007

1

檢查您的UART_Write方法在PIC微控制器端。您是否會發送\r\n以及ok?你可以澄清,在監視窗口,這是TXREG