qmc5883l - Driver for QMC5883L 3-axis magnetic sensor
- group qmc5883l
ESP-IDF Driver for 3-axis magnetic sensor QMC5883L.
Copyright (c) 2019 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Defines
-
QMC5883L_I2C_ADDR_DEF
Default I2C address.
Enums
-
enum qmc5883l_odr_t
Output data rate.
Values:
-
enumerator QMC5883L_DR_10
10Hz
-
enumerator QMC5883L_DR_50
50Hz
-
enumerator QMC5883L_DR_100
100Hz
-
enumerator QMC5883L_DR_200
200Hz
-
enumerator QMC5883L_DR_10
-
enum qmc5883l_osr_t
Oversampling rate.
Values:
-
enumerator QMC5883L_OSR_64
64 samples
-
enumerator QMC5883L_OSR_128
128 samples
-
enumerator QMC5883L_OSR_256
256 samples
-
enumerator QMC5883L_OSR_512
512 samples
-
enumerator QMC5883L_OSR_64
Functions
-
esp_err_t qmc5883l_init_desc(qmc5883l_t *dev, uint8_t addr, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)
Initialize device descriptor.
- Parameters:
dev – Device descriptor
port – I2C port number
addr – I2C address
sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_free_desc(qmc5883l_t *dev)
Free device descriptor.
- Parameters:
dev – Device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_reset(qmc5883l_t *dev)
Reset device.
- Parameters:
dev – Device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_chip_id(qmc5883l_t *dev, uint8_t *id)
Read chip ID.
- Parameters:
dev – Device descriptor
id – [out] Chip ID
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_set_mode(qmc5883l_t *dev, qmc5883l_mode_t mode)
Set device mode.
- Parameters:
dev – Device descriptor
mode – Mode
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_mode(qmc5883l_t *dev, qmc5883l_mode_t *mode)
Read current device mode.
- Parameters:
dev – Device descriptor
mode – [out] Mode
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_set_config(qmc5883l_t *dev, qmc5883l_odr_t odr, qmc5883l_osr_t osr, qmc5883l_range_t rng)
Set device configuration.
- Parameters:
dev – Device descriptor
odr – Output data rate
osr – Oversampling
rng – Field range
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_config(qmc5883l_t *dev, qmc5883l_odr_t *odr, qmc5883l_osr_t *osr, qmc5883l_range_t *rng)
Read current device configuration.
- Parameters:
dev – Device descriptor
odr – [out] Output data rate
osr – [out] Oversampling
rng – [out] Field range
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_set_int(qmc5883l_t *dev, bool enable)
Enable/disable interrupt pin.
- Parameters:
dev – Device descriptor
enable – Enable interrupt if true
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_int(qmc5883l_t *dev, bool *enable)
Get interrupt pin state.
- Parameters:
dev – Device descriptor
enable – [out] Interrupt pin enabled if true
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_data_ready(qmc5883l_t *dev, bool *ready)
Get magnetic data state.
- Parameters:
dev – Device descriptor
ready – [out] Magnetic data ready to read if true
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_raw_data(qmc5883l_t *dev, qmc5883l_raw_data_t *raw)
Read raw magnetic data.
- Parameters:
dev – Device descriptor
raw – [out] Raw magnetic data
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_raw_to_mg(qmc5883l_t *dev, qmc5883l_raw_data_t *raw, qmc5883l_data_t *data)
Convert raw magnetic data to milligauss.
- Parameters:
dev – Device descriptor
raw – Raw magnetic data
data – [out] Magnetic data in mG
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_data(qmc5883l_t *dev, qmc5883l_data_t *data)
Read magnetic data in milligauss.
- Parameters:
dev – Device descriptor
data – [out] Magnetic data in mG
- Returns:
ESP_OK
on success
-
esp_err_t qmc5883l_get_raw_temp(qmc5883l_t *dev, int16_t *temp)
Read raw temperature data (see datasheet)
- Parameters:
dev – Device descriptor
temp – [out] Raw temperature data
- Returns:
ESP_OK
on success
-
struct qmc5883l_raw_data_t
- #include <qmc5883l.h>
Raw measurement result.
-
struct qmc5883l_data_t
- #include <qmc5883l.h>
Measurement result, milligauss.
-
struct qmc5883l_t
- #include <qmc5883l.h>
Device descriptor.
-
QMC5883L_I2C_ADDR_DEF