LibDriver DHT11
Loading...
Searching...
No Matches
driver_dht11.h
Go to the documentation of this file.
1
37
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
46extern "C"{
47#endif
48
54
59
63typedef 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
92
96
103
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
187
194
203uint8_t dht11_info(dht11_info_t *info);
204
216uint8_t dht11_init(dht11_handle_t *handle);
217
228uint8_t dht11_deinit(dht11_handle_t *handle);
229
244uint8_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
259uint8_t dht11_read_humidity(dht11_handle_t *handle, uint16_t *raw, uint8_t *s);
260
273uint8_t dht11_read_temperature(dht11_handle_t *handle, uint16_t *raw, float *s);
274
278
282
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
struct dht11_info_s dht11_info_t
dht11 info structure definition
uint8_t dht11_info(dht11_info_t *info)
get chip's information
struct dht11_handle_s dht11_handle_t
dht11 handle structure definition
uint8_t dht11_init(dht11_handle_t *handle)
initialize the chip
uint8_t dht11_read_humidity(dht11_handle_t *handle, uint16_t *raw, uint8_t *s)
read the humidity data
uint8_t dht11_deinit(dht11_handle_t *handle)
close the chip
uint8_t dht11_read_temperature(dht11_handle_t *handle, uint16_t *raw, float *s)
read the temperature data
dht11 handle structure definition
void(* enable_irq)(void)
uint8_t(* bus_deinit)(void)
void(* delay_ms)(uint32_t ms)
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_write)(uint8_t value)
uint8_t(* bus_init)(void)
dht11 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]