Tiene dos opciones para enviar dos enteros en serie.
- Modo de texto: en este caso, el valor se convierte en una cadena y se envía como dos cadenas a través del puerto serie.
Por ejemplo: para enviar 10,675 respectivamente, los enteros se convierten en cadenas usando funciones como sprintf () o itoa ().
Código:
send_int_text (int val)
{
char buffer [20], * valstr = buffer;
itoa (val, tampón, 10); // aquí 10 significa decimal
mientras que (* valstr)
sendchar_serial (* valstr ++);
sendchar_serial (‘\ n’);
}
Aquí el receptor tiene que convertir el valor recibido en entero utilizando atoi () o funciones similares.
Datos recibidos en el receptor:
0x31 0x30 0x0A
0x36 0x37 0x35 0x0A - Modo binario: aquí enviará cada número entero en modo binario tal como se almacena en la memoria RAM. Para el entero serán datos de 2 bytes.
p.ej:
send_int_bin (int val)
{
unsigned char * valdat = (unsigned char *) & val;
unsigned int len = sizeof (val);
mientras (len-)
sendchar_serial (* valdat ++);
}
El receptor debería ser como
int recv_int_bin ()
{
int readint;
unsigned char * valdat = (unsigned char *) & readint;
unsigned int len = sizeof (val);
mientras (len-)
* valdat ++ = recvchar_serial ();
volver readint;
}
Datos recibidos en el receptor:
0x0A 0x00
0xA3 0x02