помогите с SerialPort.read SerialPort.Write разабраца
- Войдите на сайт для отправки комментариев
Чт, 24/05/2012 - 20:02
всё делаю в C#
send data:
string outBufer; outBufer += "none"+" x="+1+" y="+1+" z="+1; serialPort1.WriteLine(outBufer);
recive data event:
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString = serialPort1.ReadExisting();
MessageBox.Show(RxString);
}
резултат
press OK
ишё раз
ОК
скетч
breack point.
пробавал так
char inData;
String inDataString;
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
}
void loop()
{
if (Serial.available()!=0)
{
inData = Serial.read();
delay(5);
inDataString = inData;
if (inData=='none x=1 y=1 z=1') digitalWrite(13,HIGH);
else digitalWrite(13,LOW);
Serial.println(inDataString);
delay(5);
}
}
резултат
поогите пажалуста я хочу проста передать целый string и проверить что получил тоlже целый стринг
Serial.read(); читает по байту за раз так что 'none x=1 y=1 z=1' там никогда не будет. сначала нужно сложыть все что пришло а потом проверять. на форуме уже много раз подымалась такая тема
Если задача ввести строку
сравнить ее с заданной и включитьфлаг в зависимости от результата - то как то так:
#define ECHO
#define CR 13
char inData[80];
void setup()
{
Serial.begin(115200);
pinMode(13,OUTPUT);
digitalWrite(13,LOW);
}
unsigned char AnyKey(void) { // ввод одного символа
while (!Serial.available());
return Serial.read();
}
void loop()
{
unsigned char c;
int i;
//Serial.write('*');
if (Serial.available()!=0) { // если нажата клавиша
inData;
i=0;
while ((c!=CR)){
c=AnyKey();
#ifdef ECHO
Serial.write(c);
#endif
inData[i++]= c;
} // ввод строки
inData[i-1]='\0';
if (strcmp(inData,"none ")) digitalWrite(13,HIGH);
else digitalWrite(13,LOW);
delay(2000);
} // end if
}
тежолыь скетч не понемаю и ишё не работает (none)
блин, люди!, вы на каком языке общаетесь?
На Российском )))
все работает, надо вводить в окно терминала "none " с пробелом, без кавычек естественно