LibDriver MS5611
Loading...
Searching...
No Matches
driver_ms5611.h
Go to the documentation of this file.
1
36
37#ifndef DRIVER_MS5611_H
38#define DRIVER_MS5611_H
39
40#include <stdint.h>
41#include <stdio.h>
42#include <string.h>
43
44#ifdef __cplusplus
45extern "C"{
46#endif
47
53
58
67
76
80typedef enum
81{
85
97
101typedef struct ms5611_handle_s
102{
103 uint8_t iic_spi;
104 uint8_t iic_addr;
105 uint8_t (*iic_init)(void);
106 uint8_t (*iic_deinit)(void);
107 uint8_t (*iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
108 uint8_t (*iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
109 uint8_t (*spi_init)(void);
110 uint8_t (*spi_deinit)(void);
111 uint8_t (*spi_read)(uint8_t reg, uint8_t *buf, uint16_t len);
112 uint8_t (*spi_write)(uint8_t reg, uint8_t *buf, uint16_t len);
113 void (*delay_ms)(uint32_t ms);
114 void (*debug_print)(const char *const fmt, ...);
115 uint8_t inited;
116 uint16_t coeff[8];
118 uint8_t pressure_osr;
120
136
140
147
154#define DRIVER_MS5611_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
155
162#define DRIVER_MS5611_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
163
170#define DRIVER_MS5611_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
171
178#define DRIVER_MS5611_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
179
186#define DRIVER_MS5611_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
187
194#define DRIVER_MS5611_LINK_SPI_INIT(HANDLE, FUC) (HANDLE)->spi_init = FUC
195
202#define DRIVER_MS5611_LINK_SPI_DEINIT(HANDLE, FUC) (HANDLE)->spi_deinit = FUC
203
210#define DRIVER_MS5611_LINK_SPI_READ(HANDLE, FUC) (HANDLE)->spi_read = FUC
211
218#define DRIVER_MS5611_LINK_SPI_WRITE(HANDLE, FUC) (HANDLE)->spi_write = FUC
219
226#define DRIVER_MS5611_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
227
234#define DRIVER_MS5611_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
235
239
246
255uint8_t ms5611_info(ms5611_info_t *info);
256
267
277uint8_t ms5611_get_interface(ms5611_handle_t *handle, ms5611_interface_t *interface);
278
288uint8_t ms5611_set_addr_pin(ms5611_handle_t *handle, ms5611_address_t addr_pin);
289
299uint8_t ms5611_get_addr_pin(ms5611_handle_t *handle, ms5611_address_t *addr_pin);
300
311
322
333
344
357uint8_t ms5611_init(ms5611_handle_t *handle);
358
370uint8_t ms5611_deinit(ms5611_handle_t *handle);
371
386uint8_t ms5611_read_temperature_pressure(ms5611_handle_t *handle, uint32_t *temperature_raw, float *temperature_c,
387 uint32_t *pressure_raw, float *pressure_mbar);
388
401uint8_t ms5611_read_temperature(ms5611_handle_t *handle, uint32_t *temperature_raw, float *temperature_c);
402
415uint8_t ms5611_read_pressure(ms5611_handle_t *handle, uint32_t *pressure_raw, float *pressure_mbar);
416
427uint8_t ms5611_reset(ms5611_handle_t *handle);
428
432
439
453uint8_t ms5611_set_reg(ms5611_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
454
468uint8_t ms5611_get_reg(ms5611_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len);
469
473
477
478#ifdef __cplusplus
479}
480#endif
481
482#endif
struct ms5611_info_s ms5611_info_t
ms5611 information structure definition
ms5611_osr_t
ms5611 osr enumeration definition
uint8_t ms5611_get_pressure_osr(ms5611_handle_t *handle, ms5611_osr_t *osr)
get pressure osr
ms5611_address_t
ms5611 address enumeration definition
uint8_t ms5611_reset(ms5611_handle_t *handle)
reset the chip
uint8_t ms5611_read_pressure(ms5611_handle_t *handle, uint32_t *pressure_raw, float *pressure_mbar)
read the pressure
uint8_t ms5611_info(ms5611_info_t *info)
get chip's information
uint8_t ms5611_deinit(ms5611_handle_t *handle)
close the chip
uint8_t ms5611_set_pressure_osr(ms5611_handle_t *handle, ms5611_osr_t osr)
set pressure osr
uint8_t ms5611_set_addr_pin(ms5611_handle_t *handle, ms5611_address_t addr_pin)
set the iic address pin
uint8_t ms5611_read_temperature_pressure(ms5611_handle_t *handle, uint32_t *temperature_raw, float *temperature_c, uint32_t *pressure_raw, float *pressure_mbar)
read the temperature and pressure
ms5611_interface_t
ms5611 interface enumeration definition
uint8_t ms5611_read_temperature(ms5611_handle_t *handle, uint32_t *temperature_raw, float *temperature_c)
read the temperature
uint8_t ms5611_get_interface(ms5611_handle_t *handle, ms5611_interface_t *interface)
get the chip interface
struct ms5611_handle_s ms5611_handle_t
ms5611 handle structure definition
uint8_t ms5611_init(ms5611_handle_t *handle)
initialize the chip
uint8_t ms5611_get_addr_pin(ms5611_handle_t *handle, ms5611_address_t *addr_pin)
get the iic address pin
uint8_t ms5611_set_interface(ms5611_handle_t *handle, ms5611_interface_t interface)
set the chip interface
uint8_t ms5611_get_temperature_osr(ms5611_handle_t *handle, ms5611_osr_t *osr)
get temperature osr
uint8_t ms5611_set_temperature_osr(ms5611_handle_t *handle, ms5611_osr_t osr)
set temperature osr
ms5611_bool_t
ms5611 bool enumeration definition
@ MS5611_OSR_4096
@ MS5611_OSR_1024
@ MS5611_OSR_2048
@ MS5611_OSR_512
@ MS5611_OSR_256
@ MS5611_ADDRESS_CSB_1
@ MS5611_ADDRESS_CSB_0
@ MS5611_INTERFACE_SPI
@ MS5611_INTERFACE_IIC
@ MS5611_BOOL_FALSE
@ MS5611_BOOL_TRUE
uint8_t ms5611_set_reg(ms5611_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
uint8_t ms5611_get_reg(ms5611_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
ms5611 handle structure definition
uint8_t(* spi_init)(void)
uint16_t coeff[8]
void(* delay_ms)(uint32_t ms)
uint8_t(* spi_read)(uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* spi_write)(uint8_t reg, uint8_t *buf, uint16_t len)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(void)
uint8_t temperature_osr
uint8_t(* spi_deinit)(void)
uint8_t(* iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
uint8_t(* iic_deinit)(void)
ms5611 information structure definition
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]