hmc5883l - Driver for HMC5883L and HMC5983L 3-axis digital compass
- group hmc5883l
ESP-IDF Driver for 3-axis digital compass HMC5883L and HMC5983L.
Ported from esp-open-rtos
Copyright (c) 2016 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Enums
-
enum hmc5883l_opmode_t
Device operating mode.
Values:
-
enumerator HMC5883L_MODE_CONTINUOUS
Continuous mode.
-
enumerator HMC5883L_MODE_SINGLE
Single measurement mode, default.
-
enumerator HMC5883L_MODE_CONTINUOUS
-
enum hmc5883l_samples_averaged_t
Number of samples averaged per measurement.
Values:
-
enumerator HMC5883L_SAMPLES_1
1 sample, default
-
enumerator HMC5883L_SAMPLES_2
2 samples
-
enumerator HMC5883L_SAMPLES_4
4 samples
-
enumerator HMC5883L_SAMPLES_8
8 samples
-
enumerator HMC5883L_SAMPLES_1
-
enum hmc5883l_data_rate_t
Data output rate in continuous measurement mode.
Values:
-
enumerator HMC5883L_DATA_RATE_00_75
0.75 Hz
-
enumerator HMC5883L_DATA_RATE_01_50
1.5 Hz
-
enumerator HMC5883L_DATA_RATE_03_00
3 Hz
-
enumerator HMC5883L_DATA_RATE_07_50
7.5 Hz
-
enumerator HMC5883L_DATA_RATE_15_00
15 Hz, default
-
enumerator HMC5883L_DATA_RATE_30_00
30 Hz
-
enumerator HMC5883L_DATA_RATE_75_00
75 Hz
-
enumerator HMC5883L_DATA_RATE_220_00
220 Hz, HMC5983 only
-
enumerator HMC5883L_DATA_RATE_00_75
-
enum hmc5883l_bias_t
Measurement mode of the device (bias)
Values:
-
enumerator HMC5883L_BIAS_NORMAL
Default flow, no bias.
-
enumerator HMC5883L_BIAS_POSITIVE
Positive bias configuration all axes, used for self test (see datasheet)
-
enumerator HMC5883L_BIAS_NEGATIVE
Negative bias configuration all axes, used for self test (see datasheet)
-
enumerator HMC5883L_BIAS_NORMAL
-
enum hmc5883l_gain_t
Device gain.
Values:
-
enumerator HMC5883L_GAIN_1370
0.73 mG/LSb, range -0.88..+0.88 G
-
enumerator HMC5883L_GAIN_1090
0.92 mG/LSb, range -1.3..+1.3 G, default
-
enumerator HMC5883L_GAIN_820
1.22 mG/LSb, range -1.9..+1.9 G
-
enumerator HMC5883L_GAIN_660
1.52 mG/LSb, range -2.5..+2.5 G
-
enumerator HMC5883L_GAIN_440
2.27 mG/LSb, range -4.0..+4.0 G
-
enumerator HMC5883L_GAIN_390
2.56 mG/LSb, range -4.7..+4.7 G
-
enumerator HMC5883L_GAIN_330
3.03 mG/LSb, range -5.6..+5.6 G
-
enumerator HMC5883L_GAIN_230
4.35 mG/LSb, range -8.1..+8.1 G
-
enumerator HMC5883L_GAIN_1370
Functions
-
esp_err_t hmc5883l_init_desc(hmc5883l_dev_t *dev, 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
sda_gpio – GPIO pin number for SDA
scl_gpio – GPIO pin number for SCL
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_free_desc(hmc5883l_dev_t *dev)
Free device descriptor.
- Parameters:
dev – Device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_init(hmc5883l_dev_t *dev)
Initialize device.
- Parameters:
dev – Device descriptor
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_get_opmode(hmc5883l_dev_t *dev, hmc5883l_opmode_t *val)
Get operating mode.
- Parameters:
dev – Device descriptor
val – [out] Operating mode
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_set_opmode(hmc5883l_dev_t *dev, hmc5883l_opmode_t mode)
Set operating mode.
- Parameters:
dev – Device descriptor
mode – Operating mode
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_get_samples_averaged(hmc5883l_dev_t *dev, hmc5883l_samples_averaged_t *val)
Get number of samples averaged per measurement output.
- Parameters:
dev – Device descriptor
val – [out] Number of samples
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_set_samples_averaged(hmc5883l_dev_t *dev, hmc5883l_samples_averaged_t samples)
Set number of samples averaged per measurement output.
- Parameters:
dev – Device descriptor
samples – Number of samples
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_get_data_rate(hmc5883l_dev_t *dev, hmc5883l_data_rate_t *val)
Get data output rate in continuous measurement mode.
- Parameters:
dev – Device descriptor
val – [out] Data output rate
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_set_data_rate(hmc5883l_dev_t *dev, hmc5883l_data_rate_t rate)
Set data output rate in continuous measurement mode.
- Parameters:
dev – Device descriptor
rate – Data output rate
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_get_bias(hmc5883l_dev_t *dev, hmc5883l_bias_t *val)
Get measurement mode (bias of the axes)
See datasheet for self test description.
- Parameters:
dev – Device descriptor
val – [out] Bias
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_set_bias(hmc5883l_dev_t *dev, hmc5883l_bias_t bias)
Set measurement mode (bias of the axes)
See datasheet for self test description.
- Parameters:
dev – Device descriptor
bias – Bias
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_get_gain(hmc5883l_dev_t *dev, hmc5883l_gain_t *val)
Get device gain.
- Parameters:
dev – Device descriptor
val – [out] Current gain
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_set_gain(hmc5883l_dev_t *dev, hmc5883l_gain_t gain)
Set device gain.
- Parameters:
dev – Device descriptor
gain – Gain
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_data_is_ready(hmc5883l_dev_t *dev, bool *val)
Get data state.
- Parameters:
dev – Device descriptor
val – [out] true when data is written to all six data registers
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_data_is_locked(hmc5883l_dev_t *dev, bool *val)
Get lock state.
If data is locked, any new data will not be placed in data registers until one of these conditions are met:
data have been read,
operating mode is changed,
the measurement configuration (bias) is changed,
power is reset.
- Parameters:
dev – Device descriptor
val – [out] true when data registers is locked
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_get_raw_data(hmc5883l_dev_t *dev, hmc5883l_raw_data_t *data)
Get raw magnetic data.
- Parameters:
dev – Device descriptor
data – [out] Raw data
- Returns:
ESP_OK
on success
-
esp_err_t hmc5883l_raw_to_mg(const hmc5883l_dev_t *dev, const hmc5883l_raw_data_t *raw, hmc5883l_data_t *mg)
Convert raw magnetic data to milligausses.
- Parameters:
dev – Device descriptor
raw – Source raw data
mg – [out] Converted data
-
esp_err_t hmc5883l_get_data(hmc5883l_dev_t *dev, hmc5883l_data_t *data)
Get magnetic data in milligausses.
- Parameters:
dev – Device descriptor
data – [out] Magnetic data
- Returns:
ESP_OK
on success
-
struct hmc5883l_dev_t
- #include <hmc5883l.h>
Device descriptor.
-
struct hmc5883l_raw_data_t
- #include <hmc5883l.h>
Raw measurement result.
-
struct hmc5883l_data_t
- #include <hmc5883l.h>
Measurement result, milligauss.
-
enum hmc5883l_opmode_t