Andy Little
/
hmc5883_test
Detect a HMC5883 magnetometer by reading the id registers for NUCLEO-L432KC
Diff: main.cpp
- 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