void f3d_gyro_init(void) { uint8_t ctrl1 = 0x00; uint8_t ctrl4 = 0x00; f3d_gyro_interface_init(); // CTRL1 Register // Bit 7:6 Data Rate: Datarate 0 // Bit 5:4 Bandwidth: Bandwidth 3 // Bit 3: Power Mode: Active // Bit 2:0 Axes Enable: X,Y,Z enabled ctrl1 |= (uint8_t) (((uint8_t)0x00) |\ ((uint8_t)0x30) |\ ((uint8_t)0x08) |\ ((uint8_t)0x07)); // CTRL4 Register // Bit 7 Block Update: Continuous */ // Bit 6 Endianess: LSB first */ // Bit 5:4 Full Scale: 500 dps */ ctrl4 |= (uint8_t) (((uint8_t)0x00) |\ ((uint8_t)0x00) |\ ((uint8_t)0x10)); f3d_gyro_write(&ctrl1, 0x20, 1); f3d_gyro_write(&ctrl4, 0x23, 1); }
//the init function to be called in your main.c void f3d_gyro_init(void) { // //SETTING THE CONTROL REGISTERS f3d_gyro_interface_init(); // CTRL1 Register // Bit 7:6 Data Rate: Datarate 0 // Bit 5:4 Bandwidth: Bandwidth 3 // Bit 3: Power Mode: Active // Bit 2:0 Axes Enable: X,Y,Z enabled uint8_t ctrl1; uint8_t ctrl4; ctrl1 |= (uint8_t) (((uint8_t)0x00)| ((uint8_t)0x30)| ((uint8_t)0x08)| ((uint8_t)0x07)); // CTRL4 Register // Bit 7 Block Update: Continuous */ // Bit 6 Endianess: LSB first */ // Bit 5:4 Full Scale: 500 dps */ ctrl4 |= (uint8_t) (((uint8_t)0x00)| ((uint8_t)0x00)| ((uint8_t)0x10)); f3d_gyro_write(&ctrl1, 0x20, 1); f3d_gyro_write(&ctrl4, 0x23, 1); GPIO_SetBits(GPIOE, GPIO_Pin_3); }