37#ifndef DRIVER_QMC5883L_H
38#define DRIVER_QMC5883L_H
125 uint8_t (*
iic_read)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
126 uint8_t (*
iic_write)(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len);
165#define DRIVER_QMC5883L_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
173#define DRIVER_QMC5883L_LINK_IIC_INIT(HANDLE, FUC) (HANDLE)->iic_init = FUC
181#define DRIVER_QMC5883L_LINK_IIC_DEINIT(HANDLE, FUC) (HANDLE)->iic_deinit = FUC
189#define DRIVER_QMC5883L_LINK_IIC_READ(HANDLE, FUC) (HANDLE)->iic_read = FUC
197#define DRIVER_QMC5883L_LINK_IIC_WRITE(HANDLE, FUC) (HANDLE)->iic_write = FUC
205#define DRIVER_QMC5883L_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
213#define DRIVER_QMC5883L_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
uint8_t qmc5883l_set_full_scale(qmc5883l_handle_t *handle, qmc5883l_full_scale_t scale)
set the full scale
uint8_t qmc5883l_read(qmc5883l_handle_t *handle, int16_t raw[3], float m_gauss[3])
read data
qmc5883l_status_t
qmc5883l status enumeration definition
uint8_t qmc5883l_get_pointer_roll_over(qmc5883l_handle_t *handle, qmc5883l_bool_t *enable)
get pointer roll over status
uint8_t qmc5883l_get_over_sample(qmc5883l_handle_t *handle, qmc5883l_over_sample_t *sample)
get the over sample
uint8_t qmc5883l_get_full_scale(qmc5883l_handle_t *handle, qmc5883l_full_scale_t *scale)
get the full scale
uint8_t qmc5883l_get_period(qmc5883l_handle_t *handle, uint8_t *fbr)
get period
uint8_t qmc5883l_set_over_sample(qmc5883l_handle_t *handle, qmc5883l_over_sample_t sample)
set the over sample
uint8_t qmc5883l_get_interrupt(qmc5883l_handle_t *handle, qmc5883l_bool_t *enable)
get interrupt status
uint8_t qmc5883l_init(qmc5883l_handle_t *handle)
initialize the chip
qmc5883l_full_scale_t
qmc5883l full scale enumeration definition
uint8_t qmc5883l_set_pointer_roll_over(qmc5883l_handle_t *handle, qmc5883l_bool_t enable)
enable or disable pointer roll over
struct qmc5883l_handle_s qmc5883l_handle_t
qmc5883l handle structure definition
uint8_t qmc5883l_get_status(qmc5883l_handle_t *handle, uint8_t *status)
get status
uint8_t qmc5883l_set_interrupt(qmc5883l_handle_t *handle, qmc5883l_bool_t enable)
enable or disable interrupt
uint8_t qmc5883l_info(qmc5883l_info_t *info)
get chip's information
uint8_t qmc5883l_set_period(qmc5883l_handle_t *handle, uint8_t fbr)
set period
uint8_t qmc5883l_get_output_rate(qmc5883l_handle_t *handle, qmc5883l_output_rate_t *rate)
get the output rate
uint8_t qmc5883l_read_temperature(qmc5883l_handle_t *handle, int16_t *raw, float *deg)
read temperature
uint8_t qmc5883l_deinit(qmc5883l_handle_t *handle)
close the chip
uint8_t qmc5883l_set_output_rate(qmc5883l_handle_t *handle, qmc5883l_output_rate_t rate)
set the output rate
qmc5883l_bool_t
qmc5883l bool enumeration definition
struct qmc5883l_info_s qmc5883l_info_t
qmc5883l information structure definition
qmc5883l_output_rate_t
qmc5883l output rate enumeration definition
qmc5883l_mode_t
qmc5883l mode enumeration definition
qmc5883l_over_sample_t
qmc5883l over sample enumeration definition
uint8_t qmc5883l_soft_reset(qmc5883l_handle_t *handle)
soft reset
uint8_t qmc5883l_get_mode(qmc5883l_handle_t *handle, qmc5883l_mode_t *mode)
get the chip mode
uint8_t qmc5883l_set_mode(qmc5883l_handle_t *handle, qmc5883l_mode_t mode)
set the chip mode
@ QMC5883L_FULL_SCALE_8GAUSS
@ QMC5883L_FULL_SCALE_2GAUSS
@ QMC5883L_OUTPUT_RATE_50HZ
@ QMC5883L_OUTPUT_RATE_200HZ
@ QMC5883L_OUTPUT_RATE_100HZ
@ QMC5883L_OUTPUT_RATE_10HZ
@ QMC5883L_MODE_CONTINUOUS
@ QMC5883L_OVER_SAMPLE_64
@ QMC5883L_OVER_SAMPLE_512
@ QMC5883L_OVER_SAMPLE_128
@ QMC5883L_OVER_SAMPLE_256
uint8_t qmc5883l_set_reg(qmc5883l_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
set the chip register
uint8_t qmc5883l_get_reg(qmc5883l_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
get the chip register
qmc5883l handle structure definition
void(* delay_ms)(uint32_t ms)
void(* debug_print)(const char *const fmt,...)
uint8_t(* iic_init)(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)
qmc5883l information structure definition
float supply_voltage_max_v
char manufacturer_name[32]
float supply_voltage_min_v