LibDriver HTU31D
Loading...
Searching...
No Matches
driver_htu31d_register_test.c
Go to the documentation of this file.
1
36
38
39static htu31d_handle_t gs_handle;
40
50{
51 uint8_t res;
52 htu31d_info_t info;
53 htu31d_humidity_osr_t humi_osr;
55 htu31d_addr_pin_t addr_pin_check;
56 uint8_t diagnostic;
57 uint8_t number[3];
58
59 /* link functions */
67
68 /* htu31d info */
69 res = htu31d_info(&info);
70 if (res != 0)
71 {
72 htu31d_interface_debug_print("htu31d: get info failed.\n");
73
74 return 1;
75 }
76 else
77 {
78 /* print chip information */
79 htu31d_interface_debug_print("htu31d: chip is %s.\n", info.chip_name);
80 htu31d_interface_debug_print("htu31d: manufacturer is %s.\n", info.manufacturer_name);
81 htu31d_interface_debug_print("htu31d: interface is %s.\n", info.interface);
82 htu31d_interface_debug_print("htu31d: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
83 htu31d_interface_debug_print("htu31d: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
84 htu31d_interface_debug_print("htu31d: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
85 htu31d_interface_debug_print("htu31d: max current is %0.2fmA.\n", info.max_current_ma);
86 htu31d_interface_debug_print("htu31d: max temperature is %0.1fC.\n", info.temperature_max);
87 htu31d_interface_debug_print("htu31d: min temperature is %0.1fC.\n", info.temperature_min);
88 }
89
90 /* start register test */
91 htu31d_interface_debug_print("htu31d: start register test.\n");
92
93 /* htu31d_set_addr_pin/htu31d_get_addr_pin test */
94 htu31d_interface_debug_print("htu31d: htu31d_set_addr_pin/htu31d_get_addr_pin test.\n");
95
96 /* set addr pin low */
98 if (res != 0)
99 {
100 htu31d_interface_debug_print("htu31d: set addr pin failed.\n");
101
102 return 1;
103 }
104 htu31d_interface_debug_print("htu31d: set addr pin low.\n");
105 res = htu31d_get_addr_pin(&gs_handle, &addr_pin_check);
106 if (res != 0)
107 {
108 htu31d_interface_debug_print("htu31d: get addr pin failed.\n");
109
110 return 1;
111 }
112 htu31d_interface_debug_print("htu31d: check addr pin %s.\n", (HTU31D_ADDR_PIN_LOW == addr_pin_check) ? "ok" : "error");
113
114 /* set addr pin high */
115 res = htu31d_set_addr_pin(&gs_handle, HTU31D_ADDR_PIN_HIGH);
116 if (res != 0)
117 {
118 htu31d_interface_debug_print("htu31d: set addr pin failed.\n");
119
120 return 1;
121 }
122 htu31d_interface_debug_print("htu31d: set addr pin high.\n");
123 res = htu31d_get_addr_pin(&gs_handle, &addr_pin_check);
124 if (res != 0)
125 {
126 htu31d_interface_debug_print("htu31d: get addr pin failed.\n");
127
128 return 1;
129 }
130 htu31d_interface_debug_print("htu31d: check addr pin %s.\n", (HTU31D_ADDR_PIN_HIGH == addr_pin_check) ? "ok" : "error");
131
132 /* set addr pin */
133 res = htu31d_set_addr_pin(&gs_handle, addr_pin);
134 if (res != 0)
135 {
136 htu31d_interface_debug_print("htu31d: set addr pin failed.\n");
137
138 return 1;
139 }
140
141 /* init */
142 res = htu31d_init(&gs_handle);
143 if (res != 0)
144 {
145 htu31d_interface_debug_print("htu31d: init failed.\n");
146
147 return 1;
148 }
149
150 /* htu31d_set_humidity_osr/htu31d_get_humidity_osr test */
151 htu31d_interface_debug_print("htu31d: htu31d_set_humidity_osr/htu31d_get_humidity_osr test.\n");
152
153 /* set osr very high */
155 if (res != 0)
156 {
157 htu31d_interface_debug_print("htu31d: set humidity osr failed.\n");
158 (void)htu31d_deinit(&gs_handle);
159
160 return 1;
161 }
162 htu31d_interface_debug_print("htu31d: set osr very high.\n");
163 res = htu31d_get_humidity_osr(&gs_handle, &humi_osr);
164 if (res != 0)
165 {
166 htu31d_interface_debug_print("htu31d: get humidity osr failed.\n");
167 (void)htu31d_deinit(&gs_handle);
168
169 return 1;
170 }
171 htu31d_interface_debug_print("htu31d: check humidity osr %s.\n", (HTU31D_HUMIDITY_OSR_VERY_HIGH == humi_osr) ? "ok" : "error");
172
173 /* set osr high */
175 if (res != 0)
176 {
177 htu31d_interface_debug_print("htu31d: set humidity osr failed.\n");
178 (void)htu31d_deinit(&gs_handle);
179
180 return 1;
181 }
182 htu31d_interface_debug_print("htu31d: set osr high.\n");
183 res = htu31d_get_humidity_osr(&gs_handle, &humi_osr);
184 if (res != 0)
185 {
186 htu31d_interface_debug_print("htu31d: get humidity osr failed.\n");
187 (void)htu31d_deinit(&gs_handle);
188
189 return 1;
190 }
191 htu31d_interface_debug_print("htu31d: check humidity osr %s.\n", (HTU31D_HUMIDITY_OSR_HIGH == humi_osr) ? "ok" : "error");
192
193 /* set osr middle */
195 if (res != 0)
196 {
197 htu31d_interface_debug_print("htu31d: set humidity osr failed.\n");
198 (void)htu31d_deinit(&gs_handle);
199
200 return 1;
201 }
202 htu31d_interface_debug_print("htu31d: set osr middle.\n");
203 res = htu31d_get_humidity_osr(&gs_handle, &humi_osr);
204 if (res != 0)
205 {
206 htu31d_interface_debug_print("htu31d: get humidity osr failed.\n");
207 (void)htu31d_deinit(&gs_handle);
208
209 return 1;
210 }
211 htu31d_interface_debug_print("htu31d: check humidity osr %s.\n", (HTU31D_HUMIDITY_OSR_MIDDLE == humi_osr) ? "ok" : "error");
212
213 /* set osr low */
215 if (res != 0)
216 {
217 htu31d_interface_debug_print("htu31d: set humidity osr failed.\n");
218 (void)htu31d_deinit(&gs_handle);
219
220 return 1;
221 }
222 htu31d_interface_debug_print("htu31d: set osr low.\n");
223 res = htu31d_get_humidity_osr(&gs_handle, &humi_osr);
224 if (res != 0)
225 {
226 htu31d_interface_debug_print("htu31d: get humidity osr failed.\n");
227 (void)htu31d_deinit(&gs_handle);
228
229 return 1;
230 }
231 htu31d_interface_debug_print("htu31d: check humidity osr %s.\n", (HTU31D_HUMIDITY_OSR_LOW == humi_osr) ? "ok" : "error");
232
233 /* htu31d_set_temperature_osr/htu31d_get_temperature_osr test */
234 htu31d_interface_debug_print("htu31d: htu31d_set_temperature_osr/htu31d_get_temperature_osr test.\n");
235
236 /* set osr very high */
238 if (res != 0)
239 {
240 htu31d_interface_debug_print("htu31d: set temperature osr failed.\n");
241 (void)htu31d_deinit(&gs_handle);
242
243 return 1;
244 }
245 htu31d_interface_debug_print("htu31d: set osr very high.\n");
246 res = htu31d_get_temperature_osr(&gs_handle, &temp_osr);
247 if (res != 0)
248 {
249 htu31d_interface_debug_print("htu31d: get temperature osr failed.\n");
250 (void)htu31d_deinit(&gs_handle);
251
252 return 1;
253 }
254 htu31d_interface_debug_print("htu31d: check temperature osr %s.\n", (HTU31D_TEMPERATURE_OSR_VERY_HIGH == temp_osr) ? "ok" : "error");
255
256 /* set osr high */
258 if (res != 0)
259 {
260 htu31d_interface_debug_print("htu31d: set temperature osr failed.\n");
261 (void)htu31d_deinit(&gs_handle);
262
263 return 1;
264 }
265 htu31d_interface_debug_print("htu31d: set osr high.\n");
266 res = htu31d_get_temperature_osr(&gs_handle, &temp_osr);
267 if (res != 0)
268 {
269 htu31d_interface_debug_print("htu31d: get temperature osr failed.\n");
270 (void)htu31d_deinit(&gs_handle);
271
272 return 1;
273 }
274 htu31d_interface_debug_print("htu31d: check temperature osr %s.\n", (HTU31D_TEMPERATURE_OSR_HIGH == temp_osr) ? "ok" : "error");
275
276 /* set osr middle */
278 if (res != 0)
279 {
280 htu31d_interface_debug_print("htu31d: set temperature osr failed.\n");
281 (void)htu31d_deinit(&gs_handle);
282
283 return 1;
284 }
285 htu31d_interface_debug_print("htu31d: set osr middle.\n");
286 res = htu31d_get_temperature_osr(&gs_handle, &temp_osr);
287 if (res != 0)
288 {
289 htu31d_interface_debug_print("htu31d: get temperature osr failed.\n");
290 (void)htu31d_deinit(&gs_handle);
291
292 return 1;
293 }
294 htu31d_interface_debug_print("htu31d: check temperature osr %s.\n", (HTU31D_TEMPERATURE_OSR_MIDDLE == temp_osr) ? "ok" : "error");
295
296 /* set osr low */
298 if (res != 0)
299 {
300 htu31d_interface_debug_print("htu31d: set temperature osr failed.\n");
301 (void)htu31d_deinit(&gs_handle);
302
303 return 1;
304 }
305 htu31d_interface_debug_print("htu31d: set osr low.\n");
306 res = htu31d_get_temperature_osr(&gs_handle, &temp_osr);
307 if (res != 0)
308 {
309 htu31d_interface_debug_print("htu31d: get temperature osr failed.\n");
310 (void)htu31d_deinit(&gs_handle);
311
312 return 1;
313 }
314 htu31d_interface_debug_print("htu31d: check temperature osr %s.\n", (HTU31D_TEMPERATURE_OSR_LOW == temp_osr) ? "ok" : "error");
315
316 /* htu31d_set_heater_on test */
317 htu31d_interface_debug_print("htu31d: htu31d_set_heater_on test.\n");
318
319 /* heater on */
320 res = htu31d_set_heater_on(&gs_handle);
321 if (res != 0)
322 {
323 htu31d_interface_debug_print("htu31d: set heater on failed.\n");
324 (void)htu31d_deinit(&gs_handle);
325
326 return 1;
327 }
328 htu31d_interface_debug_print("htu31d: heater on.\n");
329 htu31d_interface_debug_print("htu31d: heater on %s.\n", (res == 0) ? "ok" : "error");
330
331 /* htu31d_set_heater_off test */
332 htu31d_interface_debug_print("htu31d: htu31d_set_heater_off test.\n");
333
334 /* heater off */
335 res = htu31d_set_heater_off(&gs_handle);
336 if (res != 0)
337 {
338 htu31d_interface_debug_print("htu31d: set heater off failed.\n");
339 (void)htu31d_deinit(&gs_handle);
340
341 return 1;
342 }
343 htu31d_interface_debug_print("htu31d: heater off.\n");
344 htu31d_interface_debug_print("htu31d: heater off %s.\n", (res == 0) ? "ok" : "error");
345
346 /* htu31d_get_serial_number test */
347 htu31d_interface_debug_print("htu31d: htu31d_get_serial_number test.\n");
348
349 /* get serial number */
350 res = htu31d_get_serial_number(&gs_handle, number);
351 if (res != 0)
352 {
353 htu31d_interface_debug_print("htu31d: get serial number failed.\n");
354 (void)htu31d_deinit(&gs_handle);
355
356 return 1;
357 }
358 htu31d_interface_debug_print("htu31d: serial number is 0x%02X 0x%02X 0x%02X.\n", number[0], number[1], number[2]);
359
360 /* htu31d_get_diagnostic test */
361 htu31d_interface_debug_print("htu31d: htu31d_get_diagnostic test.\n");
362
363 /* get diagnostic */
364 res = htu31d_get_diagnostic(&gs_handle, &diagnostic);
365 if (res != 0)
366 {
367 htu31d_interface_debug_print("htu31d: get diagnostic failed.\n");
368 (void)htu31d_deinit(&gs_handle);
369
370 return 1;
371 }
372 htu31d_interface_debug_print("htu31d: diagnostic is 0x%02X.\n", diagnostic);
373
374 /* htu31d_soft_reset test */
375 htu31d_interface_debug_print("htu31d: htu31d_soft_reset test.\n");
376
377 /* soft reset */
378 res = htu31d_soft_reset(&gs_handle);
379 if (res != 0)
380 {
381 htu31d_interface_debug_print("htu31d: soft reset failed.\n");
382 (void)htu31d_deinit(&gs_handle);
383
384 return 1;
385 }
386
387 /* finish register test */
388 htu31d_interface_debug_print("htu31d: finish register test.\n");
389 (void)htu31d_deinit(&gs_handle);
390
391 return 0;
392}
driver htu31d register test header file
uint8_t htu31d_soft_reset(htu31d_handle_t *handle)
soft reset
uint8_t htu31d_set_addr_pin(htu31d_handle_t *handle, htu31d_addr_pin_t addr_pin)
set the address pin
uint8_t htu31d_get_serial_number(htu31d_handle_t *handle, uint8_t number[3])
get the serial number
struct htu31d_info_s htu31d_info_t
htu31d information structure definition
uint8_t htu31d_deinit(htu31d_handle_t *handle)
close the chip
uint8_t htu31d_get_humidity_osr(htu31d_handle_t *handle, htu31d_humidity_osr_t *osr)
get humidity osr
htu31d_humidity_osr_t
htu31d humidity osr enumeration definition
htu31d_temperature_osr_t
htu31d temperature osr enumeration definition
htu31d_addr_pin_t
htu31d addr pin enumeration definition
uint8_t htu31d_init(htu31d_handle_t *handle)
initialize the chip
uint8_t htu31d_set_heater_on(htu31d_handle_t *handle)
enable heater
uint8_t htu31d_set_heater_off(htu31d_handle_t *handle)
disable heater
uint8_t htu31d_info(htu31d_info_t *info)
get chip's information
uint8_t htu31d_get_temperature_osr(htu31d_handle_t *handle, htu31d_temperature_osr_t *osr)
get temperature osr
uint8_t htu31d_set_temperature_osr(htu31d_handle_t *handle, htu31d_temperature_osr_t osr)
set temperature osr
uint8_t htu31d_get_addr_pin(htu31d_handle_t *handle, htu31d_addr_pin_t *addr_pin)
get the address pin
uint8_t htu31d_get_diagnostic(htu31d_handle_t *handle, uint8_t *diagnostic)
get the diagnostic
struct htu31d_handle_s htu31d_handle_t
htu31d handle structure definition
uint8_t htu31d_set_humidity_osr(htu31d_handle_t *handle, htu31d_humidity_osr_t osr)
set humidity osr
@ HTU31D_HUMIDITY_OSR_LOW
@ HTU31D_HUMIDITY_OSR_HIGH
@ HTU31D_HUMIDITY_OSR_MIDDLE
@ HTU31D_HUMIDITY_OSR_VERY_HIGH
@ HTU31D_TEMPERATURE_OSR_MIDDLE
@ HTU31D_TEMPERATURE_OSR_VERY_HIGH
@ HTU31D_TEMPERATURE_OSR_LOW
@ HTU31D_TEMPERATURE_OSR_HIGH
@ HTU31D_ADDR_PIN_LOW
@ HTU31D_ADDR_PIN_HIGH
uint8_t htu31d_interface_iic_deinit(void)
interface iic bus deinit
uint8_t htu31d_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
void htu31d_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t htu31d_interface_iic_init(void)
interface iic bus init
void htu31d_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t htu31d_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t htu31d_register_test(htu31d_addr_pin_t addr_pin)
register test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]