LibDriver HDC302X
Loading...
Searching...
No Matches
driver_hdc302x_basic.c
Go to the documentation of this file.
1
36
38
39static hdc302x_handle_t gs_handle;
40
50{
51 uint8_t res;
52
53 /* link interface function */
62
63 /* set addr */
64 res = hdc302x_set_addr(&gs_handle, addr);
65 if (res != 0)
66 {
67 hdc302x_interface_debug_print("hdc302x: set addr pin failed.\n");
68
69 return 1;
70 }
71
72 /* hdc302x init */
73 res = hdc302x_init(&gs_handle);
74 if (res != 0)
75 {
76 hdc302x_interface_debug_print("hdc302x: init failed.\n");
77
78 return 1;
79 }
80
81 /* set default low power mode */
83 if (res != 0)
84 {
85 hdc302x_interface_debug_print("hdc302x: set low power mode failed.\n");
86 (void)hdc302x_deinit(&gs_handle);
87
88 return 1;
89 }
90
91 /* set default auto mode */
93 if (res != 0)
94 {
95 hdc302x_interface_debug_print("hdc302x: set auto mode failed.\n");
96 (void)hdc302x_deinit(&gs_handle);
97
98 return 1;
99 }
100
101#if (HDC302X_BASIC_DEFAULT_HEATER != 0)
102 /* enable heater */
103 res = hdc302x_enable_heater(&gs_handle);
104 if (res != 0)
105 {
106 hdc302x_interface_debug_print("hdc302x: enable heater failed.\n");
107 (void)hdc302x_deinit(&gs_handle);
108
109 return 1;
110 }
111#else
112 /* disable heater */
113 res = hdc302x_disable_heater(&gs_handle);
114 if (res != 0)
115 {
116 hdc302x_interface_debug_print("hdc302x: disable heater failed.\n");
117 (void)hdc302x_deinit(&gs_handle);
118
119 return 1;
120 }
121#endif
122
123 /* set default heater power */
125 if (res != 0)
126 {
127 hdc302x_interface_debug_print("hdc302x: set heater power failed.\n");
128 (void)hdc302x_deinit(&gs_handle);
129
130 return 1;
131 }
132
133 /* start continuous read */
134 res = hdc302x_start_continuous_read(&gs_handle);
135 if (res != 0)
136 {
137 hdc302x_interface_debug_print("hdc302x: start continuous read failed.\n");
138 (void)hdc302x_deinit(&gs_handle);
139
140 return 1;
141 }
142
143 return 0;
144}
145
155uint8_t hdc302x_basic_read(float *temperature, float *humidity)
156{
157 uint16_t temperature_raw;
158 uint16_t humidity_raw;
159
160 /* read data */
161 if (hdc302x_continuous_read(&gs_handle, (uint16_t *)&temperature_raw, temperature,
162 (uint16_t *)&humidity_raw, humidity) != 0)
163 {
164 return 1;
165 }
166
167 return 0;
168}
169
178uint8_t hdc302x_basic_read_humidity_min(float *humidity)
179{
180 uint16_t humidity_raw;
181
182 /* read data */
183 if (hdc302x_read_humidity_min(&gs_handle, (uint16_t *)&humidity_raw, humidity) != 0)
184 {
185 return 1;
186 }
187
188 return 0;
189}
190
199uint8_t hdc302x_basic_read_humidity_max(float *humidity)
200{
201 uint16_t humidity_raw;
202
203 /* read data */
204 if (hdc302x_read_humidity_max(&gs_handle, (uint16_t *)&humidity_raw, humidity) != 0)
205 {
206 return 1;
207 }
208
209 return 0;
210}
211
220uint8_t hdc302x_basic_read_temperature_min(float *temperature)
221{
222 uint16_t temperature_raw;
223
224 /* read data */
225 if (hdc302x_read_temperature_min(&gs_handle, &temperature_raw, temperature) != 0)
226 {
227 return 1;
228 }
229
230 return 0;
231}
232
241uint8_t hdc302x_basic_read_temperature_max(float *temperature)
242{
243 uint16_t temperature_raw;
244
245 /* read data */
246 if (hdc302x_read_temperature_max(&gs_handle, &temperature_raw, temperature) != 0)
247 {
248 return 1;
249 }
250
251 return 0;
252}
253
262{
263 /* stop continuous read */
264 if (hdc302x_stop_continuous_read(&gs_handle) != 0)
265 {
266 return 1;
267 }
268
269 /* close hdc302x */
270 if (hdc302x_deinit(&gs_handle) != 0)
271 {
272 return 1;
273 }
274
275 return 0;
276}
277
286{
287 /* soft reset */
288 if (hdc302x_soft_reset(&gs_handle) != 0)
289 {
290 return 1;
291 }
292
293 return 0;
294}
295
304uint8_t hdc302x_basic_get_nist_id(uint8_t id[6])
305{
306 /* get nist id */
307 if (hdc302x_get_nist_id(&gs_handle, id) != 0)
308 {
309 return 1;
310 }
311
312 return 0;
313}
driver hdc302x basic header file
uint8_t hdc302x_continuous_read(hdc302x_handle_t *handle, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
continuous read
uint8_t hdc302x_disable_heater(hdc302x_handle_t *handle)
disable heater
uint8_t hdc302x_set_heater_power(hdc302x_handle_t *handle, uint16_t power)
set heater power
uint8_t hdc302x_enable_heater(hdc302x_handle_t *handle)
enable heater
uint8_t hdc302x_set_addr(hdc302x_handle_t *handle, hdc302x_address_t addr)
set the iic address
uint8_t hdc302x_deinit(hdc302x_handle_t *handle)
close the chip
hdc302x_address_t
hdc302x address enumeration definition
uint8_t hdc302x_set_low_power_mode(hdc302x_handle_t *handle, hdc302x_low_power_mode_t mode)
set low power mode
uint8_t hdc302x_get_nist_id(hdc302x_handle_t *handle, uint8_t id[6])
get nist id
uint8_t hdc302x_read_temperature_min(hdc302x_handle_t *handle, uint16_t *temperature_raw, float *temperature_s)
read temperature min
uint8_t hdc302x_set_auto_mode(hdc302x_handle_t *handle, hdc302x_auto_mode_t mode)
set auto mode
uint8_t hdc302x_read_humidity_min(hdc302x_handle_t *handle, uint16_t *humidity_raw, float *humidity_s)
read humidity min
uint8_t hdc302x_init(hdc302x_handle_t *handle)
initialize the chip
uint8_t hdc302x_read_temperature_max(hdc302x_handle_t *handle, uint16_t *temperature_raw, float *temperature_s)
read temperature max
uint8_t hdc302x_stop_continuous_read(hdc302x_handle_t *handle)
stop continuous read
struct hdc302x_handle_s hdc302x_handle_t
hdc302x handle structure definition
uint8_t hdc302x_soft_reset(hdc302x_handle_t *handle)
soft reset
uint8_t hdc302x_read_humidity_max(hdc302x_handle_t *handle, uint16_t *humidity_raw, float *humidity_s)
read humidity max
uint8_t hdc302x_start_continuous_read(hdc302x_handle_t *handle)
start continuous read
uint8_t hdc302x_basic_read_temperature_max(float *temperature)
basic example read temperature max
#define HDC302X_BASIC_DEFAULT_HEATER_POWER
uint8_t hdc302x_basic_read_temperature_min(float *temperature)
basic example read temperature min
uint8_t hdc302x_basic_init(hdc302x_address_t addr)
basic example init
uint8_t hdc302x_basic_read_humidity_max(float *humidity)
basic example read humidity max
#define HDC302X_BASIC_DEFAULT_LOW_POWER_MODE
hdc302x basic example default definition
uint8_t hdc302x_basic_read(float *temperature, float *humidity)
basic example read
#define HDC302X_BASIC_DEFAULT_AUTO_MODE
uint8_t hdc302x_basic_read_humidity_min(float *humidity)
basic example read humidity min
uint8_t hdc302x_basic_soft_reset(void)
basic example soft reset
uint8_t hdc302x_basic_deinit(void)
basic example deinit
uint8_t hdc302x_basic_get_nist_id(uint8_t id[6])
basic example get nist id
uint8_t hdc302x_interface_iic_write_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus write address16
void hdc302x_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t hdc302x_interface_iic_init(void)
interface iic bus init
uint8_t hdc302x_interface_iic_read_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus read address16
void hdc302x_interface_receive_callback(uint16_t type)
interface receive callback
void hdc302x_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t hdc302x_interface_iic_deinit(void)
interface iic bus deinit