LibDriver DHT11  2.0.0
DHT11 full-featured driver
driver_dht11.h
Go to the documentation of this file.
1 
38 #ifndef DRIVER_DHT11_H
39 #define DRIVER_DHT11_H
40 
41 #include <stdio.h>
42 #include <stdint.h>
43 #include <string.h>
44 
45 #ifdef __cplusplus
46 extern "C"{
47 #endif
48 
63 typedef struct dht11_handle_s
64 {
65  uint8_t (*bus_init)(void);
66  uint8_t (*bus_read)(uint8_t *value);
67  uint8_t (*bus_write)(uint8_t value);
68  uint8_t (*bus_deinit)(void);
69  void (*delay_ms)(uint32_t ms);
70  void (*delay_us)(uint32_t us);
71  void (*enable_irq)(void);
72  void (*disable_irq)(void);
73  void (*debug_print)(const char *const fmt, ...);
74  uint8_t inited;
76 
80 typedef struct dht11_info_s
81 {
82  char chip_name[32];
83  char manufacturer_name[32];
84  char interface[8];
90  uint32_t driver_version;
92 
110 #define DRIVER_DHT11_LINK_INIT(HANDLE, STRUCTURE) memset(HANDLE, 0, sizeof(STRUCTURE))
111 
118 #define DRIVER_DHT11_LINK_BUS_INIT(HANDLE, FUC) (HANDLE)->bus_init = FUC
119 
126 #define DRIVER_DHT11_LINK_BUS_DEINIT(HANDLE, FUC) (HANDLE)->bus_deinit = FUC
127 
134 #define DRIVER_DHT11_LINK_BUS_READ(HANDLE, FUC) (HANDLE)->bus_read = FUC
135 
142 #define DRIVER_DHT11_LINK_BUS_WRITE(HANDLE, FUC) (HANDLE)->bus_write = FUC
143 
150 #define DRIVER_DHT11_LINK_DELAY_MS(HANDLE, FUC) (HANDLE)->delay_ms = FUC
151 
158 #define DRIVER_DHT11_LINK_DELAY_US(HANDLE, FUC) (HANDLE)->delay_us = FUC
159 
166 #define DRIVER_DHT11_LINK_ENABLE_IRQ(HANDLE, FUC) (HANDLE)->enable_irq = FUC
167 
174 #define DRIVER_DHT11_LINK_DISABLE_IRQ(HANDLE, FUC) (HANDLE)->disable_irq = FUC
175 
182 #define DRIVER_DHT11_LINK_DEBUG_PRINT(HANDLE, FUC) (HANDLE)->debug_print = FUC
183 
203 uint8_t dht11_info(dht11_info_t *info);
204 
216 uint8_t dht11_init(dht11_handle_t *handle);
217 
228 uint8_t dht11_deinit(dht11_handle_t *handle);
229 
244 uint8_t dht11_read_temperature_humidity(dht11_handle_t *handle, uint16_t *temperature_raw, float *temperature_s,
245  uint16_t *humidity_raw, uint8_t *humidity_s);
246 
259 uint8_t dht11_read_humidity(dht11_handle_t *handle, uint16_t *raw, uint8_t *s);
260 
273 uint8_t dht11_read_temperature(dht11_handle_t *handle, uint16_t *raw, float *s);
274 
283 #ifdef __cplusplus
284 }
285 #endif
286 
287 #endif
uint8_t dht11_read_temperature_humidity(dht11_handle_t *handle, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, uint8_t *humidity_s)
read the temperature and humidity data
Definition: driver_dht11.c:324
struct dht11_info_s dht11_info_t
dht11 info structure definition
uint8_t dht11_info(dht11_info_t *info)
get chip's information
Definition: driver_dht11.c:584
struct dht11_handle_s dht11_handle_t
dht11 handle structure definition
uint8_t dht11_init(dht11_handle_t *handle)
initialize the chip
Definition: driver_dht11.c:467
uint8_t dht11_read_humidity(dht11_handle_t *handle, uint16_t *raw, uint8_t *s)
read the humidity data
Definition: driver_dht11.c:260
uint8_t dht11_deinit(dht11_handle_t *handle)
close the chip
Definition: driver_dht11.c:554
uint8_t dht11_read_temperature(dht11_handle_t *handle, uint16_t *raw, float *s)
read the temperature data
Definition: driver_dht11.c:398
dht11 handle structure definition
Definition: driver_dht11.h:64
void(* enable_irq)(void)
Definition: driver_dht11.h:71
uint8_t inited
Definition: driver_dht11.h:74
uint8_t(* bus_deinit)(void)
Definition: driver_dht11.h:68
void(* delay_ms)(uint32_t ms)
Definition: driver_dht11.h:69
void(* debug_print)(const char *const fmt,...)
Definition: driver_dht11.h:73
void(* delay_us)(uint32_t us)
Definition: driver_dht11.h:70
void(* disable_irq)(void)
Definition: driver_dht11.h:72
uint8_t(* bus_read)(uint8_t *value)
Definition: driver_dht11.h:66
uint8_t(* bus_write)(uint8_t value)
Definition: driver_dht11.h:67
uint8_t(* bus_init)(void)
Definition: driver_dht11.h:65
dht11 info structure definition
Definition: driver_dht11.h:81
float temperature_max
Definition: driver_dht11.h:89
float supply_voltage_max_v
Definition: driver_dht11.h:86
uint32_t driver_version
Definition: driver_dht11.h:90
float temperature_min
Definition: driver_dht11.h:88
float max_current_ma
Definition: driver_dht11.h:87
char manufacturer_name[32]
Definition: driver_dht11.h:83
float supply_voltage_min_v
Definition: driver_dht11.h:85
char interface[8]
Definition: driver_dht11.h:84
char chip_name[32]
Definition: driver_dht11.h:82