Andy Little
/
hmc5883_test
Detect a HMC5883 magnetometer by reading the id registers for NUCLEO-L432KC
Diff: main.cpp
- Revision:
- 1:8cd11758eff3
- Parent:
- 0:10e9548cdb3d
--- a/main.cpp Thu Aug 30 13:36:05 2018 +0000 +++ b/main.cpp Thu Aug 30 20:07:17 2018 +0000 @@ -1,5 +1,6 @@ #include "mbed.h" +#include <cstring> #include <I2C.h> #include <Serial.h> @@ -21,12 +22,20 @@ { //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); + if ( i2c.write(i2c_addr,&id_regA,1) == 0){ + char id_input[4]; + i2c.read(i2c_addr,id_input,3); + id_input[3] = '\0'; + if (strcmp(id_input,"H43") == 0){ + pc.printf("Detected a HMC5883",id_input); + }else{ + pc.printf("config Not got a HMC5883",id_input); + } + }else{ + pc.printf("HMC5883 write failed\n"); + } //check we are still running for (;;){ led1 = !led1;