2013-04-20 60 views
0

我很抱歉,如果這是一個愚蠢的問題(這可能是),但我很難得到一個函數正常工作。Arduino通過字符功能

我的代碼,因爲它代表:

#define photoPin A0  
char photoCode[] = "L"; 

void loop(void) { 
    analogSensor(photoPin, photoCode); 
    delay(5000); 
} 

void analogSensor(int sensorPin, char* sensorCode) { 
    //Poll the Photo Cell and append that to the buffer 
    int sensorValue=analogRead(sensorPin); 
    Serial.print(sensorCode); 
    sprintf(buf + strlen(buf), "," + sensorCode + ":%04i", sensorValue); 

} 

當我嘗試編譯,我得到以下信息:

In function 'void analogSensor(int, char*)': 
i2c_Sensor:104: error: invalid operands of types 'const char [2]' and 'char*' to binary 'operator+' 

但是,如果我註釋掉的sprintf線,它編譯罰款,並持續5秒鐘,在屏幕上打印出「L」。最終,我很困惑,因爲所有人都出去了,而且不知道現在該轉向哪裏。

任何幫助表示讚賞。

回答

1

最後一個格式化得到borked :)

我畏懼你不能連擊的char *與+操作:)你不得不打電話的sprintf或者strcat的:)請與當地的手冊頁。

取而代之的是:

sprintf(buf + strlen(buf), "," + sensorCode + ":%04i", sensorValue); 

試試這個:

sprintf(buf+strlen(buf), ",%s:%04i", sensorCode, sensorValue); 
+0

這奏效了!謝謝! – Butters 2013-04-21 18:21:58