Detect a HMC5883 magnetometer by reading the id registers for NUCLEO-L432KC

Revision:
0:10e9548cdb3d
Child:
1:8cd11758eff3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Aug 30 13:36:05 2018 +0000
@@ -0,0 +1,35 @@
+
+#include "mbed.h"
+#include <I2C.h>
+#include <Serial.h>
+
+namespace {
+    DigitalOut led1(LED1);
+    
+    Serial pc(USBTX, USBRX); // tx, rx
+    
+    I2C i2c(PA_10,PA_9); // I2C1
+    
+    const uint8_t i2c_addr = 0x3D;
+    // idreg
+    const char id_regA = 10U;
+    const char id_regB = 11U;
+    const char id_regC = 12U;
+}
+
+int main()
+{
+    //wait for mag to init
+    Thread::wait(500);
+    // move pointer to loc
+    i2c.write(i2c_addr,&id_regA,1);
+    char id_input[4];
+    i2c.read(i2c_addr,id_input,3);
+    id_input[3] = '\0';
+    pc.printf("config got %s\n",id_input);
+    //check we are still running
+    for (;;){
+       led1 = !led1;
+       Thread::wait(250);
+    }
+}
\ No newline at end of file