Arduino Razor IMU con Serial.write (id, 2): No puede tener 2 parámetros

2

Descargué el Razor IMU código fuente anoche de Razor AHRS . Este código utiliza exactamente los sensores que necesito y resolvería el problema que tengo actualmente (espero). El único problema es que en la línea 535 en "Razor AHRS v1.4.1 \ Arduino \ Razor_AHRS \ Razor_AHRS.pde" en el archivo zip vinculado anterior tienen:

Serial.write(id, 2);

Cuando verifico, la compilación falla en esta línea con el siguiente error:

no matching function for call to 'Serial_::write(byte [2],int)'

Descargué e instalé Arduino 1.0.2 en una computadora nueva e instalé los controladores en Arduino Pro Micro 16MHz / 5V.

Revisé la documentación de arduino en Serial. escribe y parece ser un comando válido.

En una máquina anterior tenía Ardiono 1.0 instalado donde inicialmente tuve este problema. Entonces instalé Arduino 1.0.2 en esa máquina y funcionó. Ahora, en esta nueva máquina solo instalé 1.0.2 y no funciona.

¿Qué estoy haciendo mal?

    
pregunta Gineer

3 respuestas

2

Según la página Arduino.cc en Serial.Write , admite 2 argumentos, donde el primer argumento debería sea un nombre de matriz (o un puntero a una matriz, que es lo mismo) y el segundo argumento debe contener el número de elementos que desea transmitir a través del enlace en serie. La línea 535 del archivo Razor_AHRS.pde que has vinculado cumple con esa especificación y no debería causar un error de compilación.

Instalé el último IDE de Arduino (1.0.2) y luego de descomentar una sola línea para seleccionar el código del hardware que vinculaste con éxito. Mirando el sitio web de Arduino Changes parece que Serial.write (buf, len) se introdujo en la versión 0016.

Verifique que tenga una versión nueva (ly) del IDE de Arduino y luego actualice su publicación original con el mensaje de error que está recibiendo. (Aunque el IDE de Arduino ha sido, al menos históricamente, bastante malo en dar mensajes de error descriptivos, en mi opinión).

    
respondido por el GummiV
1

Tal vez su código fue desarrollado en uno de los IDE de Arduino más antiguos. Las interfaces de función han cambiado bastante desde las versiones 00x a Arduino 1.0 y posteriores. Intenta descargar y usar uno de los lanzamientos anteriores; 0023 me ha funcionado en muchos casos.

[nota del moderador: esta respuesta llegó a este hilo como resultado de una combinación.]

    
respondido por el Erion
0

Serial.write ((uint8_t *) DataArrayL, (size_t) sizeof (DataArrayL));

usa este formato

DataArrayL es su nombre de la matriz, simplemente reemplácelo

    
respondido por el user27750

Lea otras preguntas en las etiquetas