2017-03-02 131 views
0

我與樹莓派連接到Arduino的嘗試接收號碼,當我設置一個循環從Arduino的烏諾串行接收信息時,只接收:樹莓派從Arduino的

'118537\r\n' 

也就是說,當我嘗試串行打印 '嗨'

這裏是我的Arduino代碼:

void setup(){ 
    Serial.begin(9600); 
} 
void loop(){ 
    Serial.println('Hi'); 
    delay(2000); 
} 

這裏是我的Python 3.2的代碼:

import serial 
ser = serial.Serial('/dev/ttyACM0') 
while True: 
    print(ser.readline()) 

這打印:'118537 \ r \ n'每2秒。

我怎樣才能每2秒就得到原始的'Hi'?

+1

你確定它是'attyACM0'或'ttyACM0'? – eyllanesc

+0

謝謝@eyllanesc –

回答

3

對於那些你們誰想要知道,這是我的字符串中使用「,而不是」,改變這樣的事實:

Serial.println('Hi'); 

Serial.println("Hi"); 

ETA :'118537 \ n \ n'被打印出來的原因是因爲'Hi'是兩個bytes而不是一個「字符串」,因此編譯器使用該函數打印int。事實上,Hhex代碼是48ihex代碼是69,並且十六進制值的0x4869正是118537十進制數。