31 #define TM_HMC5883L_H 100
64 #include "stm32f4xx.h"
65 #include "stm32f4xx_rcc.h"
67 #include "tm_stm32f4_i2c.h"
68 #include "tm_stm32f4_gpio.h"
69 #include "tm_stm32f4_exti.h"
85 #define HMC5883L_I2C I2C3
86 #define HMC5883L_I2C_PINSPACK TM_I2C_PinsPack_1
90 #ifndef HMC5883L_I2C_CLOCK
91 #define HMC5883L_I2C_CLOCK 400000
95 #define HMC5883L_I2C_ADDR 0x3C
98 #ifndef HMC5883L_DRDY_PIN
99 #define HMC5883L_DRDY_PORT GPIOC
100 #define HMC5883L_DRDY_PIN GPIO_PIN_3
113 #define HMC5883L_CONFA 0x00
114 #define HMC5883L_CONFB 0x01
115 #define HMC5883L_MODE 0x02
116 #define HMC5883L_DATAXM 0x03
117 #define HMC5883L_DATAXL 0x04
118 #define HMC5883L_DATAZM 0x05
119 #define HMC5883L_DATAZL 0x06
120 #define HMC5883L_DATAYM 0x07
121 #define HMC5883L_DATAYL 0x08
122 #define HMC5883L_STATUS 0x09
123 #define HMC5883L_IDA 0x0A
124 #define HMC5883L_IDB 0x0B
125 #define HMC5883L_IDC 0x0C
142 TM_HMC5883L_Result_Ok = 0x00,
143 TM_HMC5883L_Result_Error,
144 TM_HMC5883L_Result_DeviceNotConnected
145 } TM_HMC5883L_Result_t;
148 TM_HMC5883L_Gain_0_88 = 0x00,
149 TM_HMC5883L_Gain_1_3 = 0x20,
150 TM_HMC5883L_Gain_1_9 = 0x40,
151 TM_HMC5883L_Gain_2_5 = 0x60,
152 TM_HMC5883L_Gain_4_0 = 0x80,
153 TM_HMC5883L_Gain_4_7 = 0xA0,
154 TM_HMC5883L_Gain_5_6 = 0xC0,
155 TM_HMC5883L_Gain_8_1 = 0xE0
156 } TM_HMC5883L_Gain_t;
159 TM_HMC5883L_OutputRate_0_75Hz = 0x00,
160 TM_HMC5883L_OutputRate_1_5Hz = 0x04,
161 TM_HMC5883L_OutputRate_3Hz = 0x08,
162 TM_HMC5883L_OutputRate_7_5Hz = 0x0C,
163 TM_HMC5883L_OutputRate_15Hz = 0x10,
164 TM_HMC5883L_OutputRate_30Hz = 0x14,
165 TM_HMC5883L_OutputRate_75Hz = 0x18
166 } TM_HMC5883L_OutputRate_t;
185 TM_HMC5883L_Result_t TM_HMC5883L_Init(
TM_HMC5883L_t* HMC5883L, TM_HMC5883L_Gain_t Gain, TM_HMC5883L_OutputRate_t OutputRate);
187 TM_HMC5883L_Result_t TM_HMC5883L_DataReady(
TM_HMC5883L_t* HMC5883L);
189 TM_HMC5883L_Result_t TM_HMC5883L_Read(
TM_HMC5883L_t* HMC5883L);
191 TM_HMC5883L_Result_t TM_HMC5883L_ProcessInterrupt(
TM_HMC5883L_t* HMC5883L);
Definition: tm_stm32f4_hmc5883l.h:168