LibDriver HX711
Loading...
Searching...
No Matches
driver_hx711.h
Go to the documentation of this file.
1
37
38#ifndef DRIVER_HX711_H
39#define DRIVER_HX711_H
40
41#include <math.h>
42#include <stdint.h>
43#include <stdio.h>
44#include <string.h>
45
46#ifdef __cplusplus
47extern "C"{
48#endif
49
55
60
70
74typedef struct hx711_handle_s
75{
76 uint8_t (*bus_init)(void);
77 uint8_t (*bus_deinit)(void);
78 uint8_t (*bus_read)(uint8_t *value);
79 uint8_t (*clock_init)(void);
80 uint8_t (*clock_deinit)(void);
81 uint8_t (*clock_write)(uint8_t value);
82 void (*delay_us)(uint32_t us);
83 void (*enable_irq)(void);
84 void (*disable_irq)(void);
85 void (*debug_print)(const char *const fmt, ...);
86 uint8_t inited;
87 uint8_t mode;
89
105
109
116
123#define DRIVER_HX711_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
124
131#define DRIVER_HX711_LINK_BUS_INIT(HANDLE, FUC) (HANDLE)->bus_init = FUC
132
139#define DRIVER_HX711_LINK_BUS_DEINIT(HANDLE, FUC) (HANDLE)->bus_deinit = FUC
140
147#define DRIVER_HX711_LINK_BUS_READ(HANDLE, FUC) (HANDLE)->bus_read = FUC
148
155#define DRIVER_HX711_LINK_CLOCK_INIT(HANDLE, FUC) (HANDLE)->clock_init = FUC
156
163#define DRIVER_HX711_LINK_CLOCK_DEINIT(HANDLE, FUC)(HANDLE)->clock_deinit = FUC
164
171#define DRIVER_HX711_LINK_CLOCK_WRITE(HANDLE, FUC) (HANDLE)->clock_write = FUC
172
179#define DRIVER_HX711_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
180
187#define DRIVER_HX711_LINK_ENABLE_IRQ(HANDLE, FUC) (HANDLE)->enable_irq = FUC
188
195#define DRIVER_HX711_LINK_DISABLE_IRQ(HANDLE, FUC) (HANDLE)->disable_irq = FUC
196
203#define DRIVER_HX711_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
204
208
215
224uint8_t hx711_info(hx711_info_t *info);
225
236uint8_t hx711_init(hx711_handle_t *handle);
237
248uint8_t hx711_deinit(hx711_handle_t *handle);
249
261uint8_t hx711_set_mode(hx711_handle_t *handle, hx711_mode_t mode);
262
274uint8_t hx711_get_mode(hx711_handle_t *handle, hx711_mode_t *mode);
275
289uint8_t hx711_read(hx711_handle_t *handle, int32_t *raw, double *voltage_v);
290
294
298
299#ifdef __cplusplus
300}
301#endif
302
303#endif
uint8_t hx711_deinit(hx711_handle_t *handle)
close the chip
uint8_t hx711_get_mode(hx711_handle_t *handle, hx711_mode_t *mode)
get the chip mode
hx711_mode_t
hx711 mode enumeration definition
struct hx711_handle_s hx711_handle_t
hx711 handle structure definition
uint8_t hx711_init(hx711_handle_t *handle)
initialize the chip
uint8_t hx711_set_mode(hx711_handle_t *handle, hx711_mode_t mode)
set the chip mode
struct hx711_info_s hx711_info_t
hx711 info structure definition
uint8_t hx711_info(hx711_info_t *info)
get chip's information
uint8_t hx711_read(hx711_handle_t *handle, int32_t *raw, double *voltage_v)
read the 24 bits raw ad from the chip
@ HX711_MODE_CHANNEL_A_GAIN_64
@ HX711_MODE_CHANNEL_A_GAIN_128
@ HX711_MODE_CHANNEL_B_GAIN_32
hx711 handle structure definition
void(* enable_irq)(void)
uint8_t(* clock_deinit)(void)
uint8_t(* bus_deinit)(void)
void(* debug_print)(const char *const fmt,...)
void(* delay_us)(uint32_t us)
void(* disable_irq)(void)
uint8_t(* bus_read)(uint8_t *value)
uint8_t(* bus_init)(void)
uint8_t(* clock_init)(void)
uint8_t(* clock_write)(uint8_t value)
hx711 info structure definition
float temperature_max
float supply_voltage_max_v
uint32_t driver_version
float temperature_min
float max_current_ma
char manufacturer_name[32]
float supply_voltage_min_v
char interface[8]
char chip_name[32]