我想與sim900一起工作,我正在嘗試做的事情是:1-讀取串行端口,2-將所有內容輸入到字符串中,3-搜索該字符串中的參數,4-清理字符串。代碼非常簡單,但我無法理解我做錯了什麼。 如果有人做出類似的事情,或者知道如何做,我會優雅的。 , 非常感謝你 何塞·路易斯·Arduino.Read串行,創建字符串,搜索到字符串,乾淨字符串
String leido = " ";
void setup(){ // the Serial1 baud rate
Serial.begin(9600);
Serial1.begin(9600);
}
String leido = " ";
void setup(){
// the Serial1 baud rate
Serial.begin(9600);
Serial1.begin(9600);
}
void loop()
{
//if (Serial1.available()) { Serial.write(Serial1.read()); } // Sim900
if (Serial.available()) { Serial1.write(Serial.read()); } // pc
leido = LeerSerial();
Serial.println(leido);
if (find_text("READY",leido)==1){leido = " ";}
}
String LeerSerial(){
char character;
while(Serial1.available()) {
character = Serial1.read();
leido.concat(character);
delay (10); }
if (leido != "") { Serial1.println(leido);return leido; }
}
int find_text(String needle, String haystack) {
int foundpos = -1;
for (int i = 0; (i < haystack.length() - needle.length()); i++) {
if (haystack.substring(i,needle.length()+i) == needle) {
foundpos = 1;
}
}
return foundpos;
}
伴侶!感謝幫助我!我有改變代碼一點點 –
void loop() { // if(Serial1.available()){Serial.write(Serial1.read()); } // Sim900 if(Serial.available()){Serial1.write(Serial.read()); } // pc leido = LeerSerial(); Serial.println(leido); Serial.println(leido.indexOf(「Ready」)); (「準備好」)!= -1){0} {0} } delay(1000); ()){} –
String LeerSerial(){ while(Serial1.available()){c1c = Serial1.read(); leido + = c; } return leido; } –