J'ai trouvé quelques autres personnes à ce sujet, mais toutes codent dans Arduino, et j'ai du mal à le traduire dans mon projet.Données de magnétomètre sur MPU-9250 (uClinux)
Je fais partie d'une équipe de recherche développant un satellite Cube pour le lancement, et mon rôle est de communiquer avec les périphériques, y compris l'IMU (MPU-9250). Je suis la compilation croisée avec uClinux, codant en C.
Jusqu'à présent, je peux lire avec succès l'accéléromètre, le gyroscope et la température, mais je ne peux pas obtenir les lectures du magnétomètre. Le magnétomètre (AK8963) a sa propre adresse (0x0C), et je l'ai essayé de communiquer avec lui en écrivant à I2C_SLV0_ADDR (0x25), I2C_SLV0_REG (0x26), et I2C_SLV0_CTRL (0x27). Une fois que je ne semble pas pour obtenir des résultats, j'ai essayé de le résoudre en écrivant à FIFO Activer (0x23) et I2C Master Control (0x24)
La présente fiche technique et inscrire carte laisser entendre que les valeurs prises de le magnétomètre est stocké dans les registres Données du capteur externe (0x49-0x60), mais je n'obtiens rien dans ces registres lorsque j'essaie cela.
Voici un code qui montre les données que je vous écris pour les registres:
write_register(0x23, 0x04);
write_register(0x24, 0b11110000);
write_register(0x25,0x8c);
write_register(0x26,0x00);
write_register(0x27,0b11110001);
Mes questions sont les suivantes: 1. Vais-je sur ce processus de la bonne façon, ou suis-je complètement?
- Si je suis sur la bonne voie, est-ce que je lis dans les bons registres?
Merci pour votre aide tout le monde! Faites-moi savoir s'il y a quelque chose que je dois clarifier!
Eh bien, je ne connais pas l'appareil, mais je ne comprends pas comment lire un ensemble de registres ne peut rien obtenir? – ThingyWotsit