TM STM32F4xx Libraries  v1.0.0
Libraries for STM32F4xx devices from Tilen Majerle
tm_stm32f4_bmp180.h
1 
30 #ifndef TM_BMP180_H
31 #define TM_BMP180_H 100
32 
33 /* C++ detection */
34 #ifdef __cplusplus
35 extern C {
36 #endif
37 
97 #include "stm32f4xx.h"
98 #include "stm32f4xx_rcc.h"
99 #include "defines.h"
100 #include "tm_stm32f4_i2c.h"
101 #include "math.h"
102 
109 /* Default I2C pin */
110 #ifndef BMP180_I2C
111 #define BMP180_I2C I2C3
112 #define BMP180_I2C_PINSPACK TM_I2C_PinsPack_1
113 #endif
114 
115 /* Default I2C speed */
116 #ifndef BMP180_I2C_SPEED
117 #define BMP180_I2C_SPEED 100000
118 #endif
119 
120 /* BMP180 I2C address */
121 #ifndef BMP180_I2C_ADDRESS
122 #define BMP180_I2C_ADDRESS 0xEE
123 #endif
124 
125 /* Registers */
126 #define BMP180_REGISTER_CONTROL 0xF4
127 #define BMP180_REGISTER_RESULT 0xF6
128 #define BMP180_REGISTER_EEPROM 0xAA
129 
130 /* Commands */
131 #define BMP180_COMMAND_TEMPERATURE 0x2E
132 #define BMP180_COMMAND_PRESSURE_0 0x34
133 #define BMP180_COMMAND_PRESSURE_1 0x74
134 #define BMP180_COMMAND_PRESSURE_2 0xB4
135 #define BMP180_COMMAND_PRESSURE_3 0xF4
136 
137 /* Minimum waiting delay, in microseconds */
138 #define BMP180_TEMPERATURE_DELAY 4500
139 #define BMP180_PRESSURE_0_DELAY 4500
140 #define BMP180_PRESSURE_1_DELAY 7500
141 #define BMP180_PRESSURE_2_DELAY 13000
142 #define BMP180_PRESSURE_3_DELAY 25000
143 
157 typedef enum {
162 
168 typedef enum {
174 
178 typedef struct {
179  float Altitude;
180  uint32_t Pressure;
181  float Temperature;
182  uint16_t Delay;
184 } TM_BMP180_t;
185 
202 
209 
217 
227 
234 
248 uint32_t TM_BMP180_GetPressureAtSeaLevel(uint32_t pressure, float altitude);
249 
262 /* C++ detection */
263 #ifdef __cplusplus
264 }
265 #endif
266 
267 #endif
Definition: tm_stm32f4_bmp180.h:170
TM_BMP180_Result_t TM_BMP180_StartTemperature(TM_BMP180_t *BMP180_Data)
Starts temperature sensor on BMP180.
uint16_t Delay
Definition: tm_stm32f4_bmp180.h:182
TM_BMP180_Oversampling_t
Options for oversampling settings.
Definition: tm_stm32f4_bmp180.h:168
TM_BMP180_Result_t TM_BMP180_StartPressure(TM_BMP180_t *BMP180_Data, TM_BMP180_Oversampling_t Oversampling)
Starts pressure measurement on BMP180 sensor.
Definition: tm_stm32f4_bmp180.h:160
TM_BMP180_Result_t TM_BMP180_ReadTemperature(TM_BMP180_t *BMP180_Data)
Reads temperature from BMP180 sensor.
Definition: tm_stm32f4_bmp180.h:172
uint32_t Pressure
Definition: tm_stm32f4_bmp180.h:180
Definition: tm_stm32f4_bmp180.h:171
uint32_t TM_BMP180_GetPressureAtSeaLevel(uint32_t pressure, float altitude)
Calculates pressure above sea level in pascals.
Definition: tm_stm32f4_bmp180.h:159
Definition: tm_stm32f4_bmp180.h:169
float Altitude
Definition: tm_stm32f4_bmp180.h:179
TM_BMP180_Oversampling_t Oversampling
Definition: tm_stm32f4_bmp180.h:183
TM_BMP180_Result_t TM_BMP180_ReadPressure(TM_BMP180_t *BMP180_Data)
Reads pressure from BMP180 sensor and calculate it.
BMP180 main structure.
Definition: tm_stm32f4_bmp180.h:178
TM_BMP180_Result_t
BMP180 result enumerations.
Definition: tm_stm32f4_bmp180.h:157
Definition: tm_stm32f4_bmp180.h:158
float Temperature
Definition: tm_stm32f4_bmp180.h:181
TM_BMP180_Result_t TM_BMP180_Init(TM_BMP180_t *BMP180_Data)
Initializes BMP180 pressure sensor.