Serial port Arduino串行通信中的数据丢失
我有一个在arduino上接收串行数据的代码,但是当我发送一个数据时不能正常工作,例如,如果我发送一个4或7,我就得不到那个数字,但是如果我发送454或44.5或任何其他不同数字的组合,它就可以正常工作Serial port Arduino串行通信中的数据丢失,serial-port,arduino,Serial Port,Arduino,我有一个在arduino上接收串行数据的代码,但是当我发送一个数据时不能正常工作,例如,如果我发送一个4或7,我就得不到那个数字,但是如果我发送454或44.5或任何其他不同数字的组合,它就可以正常工作 boolean estado = false; int vect[10]; char val; int ledpin = 13; int pos = 90; float consumo = 0; double tarifa = 1.5; double data = 0; double d
boolean estado = false;
int vect[10];
char val;
int ledpin = 13;
int pos = 90;
float consumo = 0;
double tarifa = 1.5;
double data = 0;
double data_aux = 0;
int i=1;
int count = -1;
boolean temp = false;
void setup() {
pinMode(ledpin, OUTPUT);
Serial.begin(9600);
}
void loop() {
if( Serial.available() >0 ) // daotos disponibles
{
val = Serial.read();
// 'M' => medir
if(val=='M')
{
consumo = analogRead(A0);
Serial.println(consumo);
}
else
{
// 'C' => Conectar
if ( val == 'C')
{
Serial.println(tarifa);
}
else // Cambiar tarifa
{
///prueba
count = count + 1;
vect[count] = val - '0';
tarifa = vect[count];
//fin
while(Serial.available()>0)
{
if (temp == true)
{
val = Serial.read();
}
if ( val == '\n' || val == '\r' || val=='\0')
{
break;
}
count = count + 1;
vect[count] = val - '0';
temp = true;
}
if(count > 0)
{
for(int x = count; x > -1; x--)
{
if(vect[x]==-2)
{
data_aux = data/i;
data = data_aux;
i = 1;
}
else
{
data = data + vect[x]*i;
i = i*10;
}
}
tarifa = data;
}
“如果我发送一个4或7,我就不知道该怎么做了”你得到了什么?我得到了-38,我看到了一个proiblems第二个数据存储在firts和second position中,我首先解决了保存所有数据的问题,然后看看该怎么做,但现在我在发送超过六个字符时遇到了问题。