Files

62 lines
1.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <esp_err.h>
/**
* @brief 数据结构体:存放重量和电压值
*/
typedef struct {
float weight; // 校准后的重量值
} scale_data_t;
/**
* @brief 初始化 SGM58031 ADC 以及 I2C 设备
*
* @param i2c_port I2C外设端口号通常为 0
* @param sda_pin SDA 引脚号
* @param scl_pin SCL 引脚号
* @return esp_err_t 初始化结果
*/
esp_err_t sgm8031_use_init(int i2c_port, int sda_pin, int scl_pin);
/**
* @brief 触发单次转换并读取此时的重量和电压值
*
* @param out_data 读取到的数据将会存放到这边
* @return esp_err_t
*/
esp_err_t sgm8031_use_read_data(scale_data_t *out_data);
/**
* @brief 去皮(空载归零)
* 调用时保证秤面没有物品,系统会读取多次后均值认定为现在的零点基准值。
*
* @return esp_err_t
*/
esp_err_t sgm8031_use_tare(void);
/**
* @brief 设置称重传感器的校准系数(即:实际重量 / ADC变化量
*
* @param factor 浮点校准系数
*/
void sgm8031_use_set_calibration_factor(float factor);
/**
* @brief (调试用)直接读取最原始的差分 ADC 值
*
* @param raw_out 输出的原始ADC整数值
* @return esp_err_t
*/
esp_err_t sgm8031_use_read_raw_weight(int16_t *raw_out);
#ifdef __cplusplus
}
#endif