Может кому пригодиться: Код (C++): [B]Byte to Int[/B] Читаем Serial и записываем в int [B]Получение целого однозначного числа(1..9)[/B] IntVar=(Serial.read() - '0'); [B]Получение целого многозначного значения (10+)[/B] delay(200)//зависит от скорости передачи while (Serial.available()) IntVar = IntVar * 10 + (Serial.read() - '0'); [B]Получение текста[/B] delay(200);//зависит от скорости передачи while (Serial.available())Var = Var + (char)(Serial.read()); [B]String to Int[/B] int intVar; String stringVar = "744"; intVar=stringVar.toInt(); [B]String to Float[/B] float floatVar; char floatbufVar[32]; String stringVar = "744"; stringVar.toCharArray(floatbufVar,sizeof(floatbufVar)); floatVar=atof(floatbufVar); [B]String to CharArray[/B] String stringVar = "744"; char charBufVar[50]; stringVar.toCharArray(charBufVar, 50); [B]CharArray to Byte[/B] char CharArrayVar[8] = {1,0,1,1,0,0,1,1}; char CharVar = 0; for(int i = 0; i<8; i++) { CharVar |= lCharArrayVar[i] << (7-i); } PORTD = CharVar; [B]char to string[/B] char[] chArray = "пример"; String str(chArray); [B]String to const char*[/B] String stringVar=String('exemple'); char charVar[sizeof(stringVar)]; stringVar.toCharArray(charVar, sizeof(charVar)); [B]String to Unsigned long integer[/B] char **pointer, *stringVar; unsigned long unsignedVar; stringVar = "324234g"; unsignedVar = strtoul(stringVar,pointer,10);//=324234 [B]Int to String1 [/B] String stringVar = String(intVar, DEC); [B]Int to HEX(String) [/B] String stringVar = String(intVar, HEX); [B]Int to BIN(String) [/B] String stringVar = String(intVar, BIN); [B]uint8_t to char[/B] Serial.print((char)buf[i]);
Получение целого многозначного значения (10+) delay(200)//зависит от скорости передачи while(Serial.available()) IntVar = IntVar *10+(Serial.read()-'0'); я конечно извиняюсь, но что тут происходит? если есть инфа в буфере сериала, то содержимое буфера, переведенное из ASCII чета умножается и плюсуется с неизвестно каким intVar?
идею то я понял что каждое последующее число будет умножатся на 10 и складываться в переменную. Но работать это будет только когда это единственная задача в цикле. например если в одном из кейсов которые я выбираю по команде из Serial такое не провернуть.