LibDriver HTU21D
Loading...
Searching...
No Matches
driver_htu21d_register_test.c
Go to the documentation of this file.
1
36
38
39static htu21d_handle_t gs_handle;
40
49{
50 uint8_t res;
51 htu21d_info_t info;
52 htu21d_mode_t mode;
53 htu21d_resolution_t resolution;
54 htu21d_bool_t enable;
55 uint64_t number;
56 htu21d_status_t status;
57
58 /* link functions */
69
70 /* htu21d info */
71 res = htu21d_info(&info);
72 if (res != 0)
73 {
74 htu21d_interface_debug_print("htu21d: get info failed.\n");
75
76 return 1;
77 }
78 else
79 {
80 /* print chip information */
81 htu21d_interface_debug_print("htu21d: chip is %s.\n", info.chip_name);
82 htu21d_interface_debug_print("htu21d: manufacturer is %s.\n", info.manufacturer_name);
83 htu21d_interface_debug_print("htu21d: interface is %s.\n", info.interface);
84 htu21d_interface_debug_print("htu21d: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
85 htu21d_interface_debug_print("htu21d: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
86 htu21d_interface_debug_print("htu21d: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
87 htu21d_interface_debug_print("htu21d: max current is %0.2fmA.\n", info.max_current_ma);
88 htu21d_interface_debug_print("htu21d: max temperature is %0.1fC.\n", info.temperature_max);
89 htu21d_interface_debug_print("htu21d: min temperature is %0.1fC.\n", info.temperature_min);
90 }
91
92 /* start register test */
93 htu21d_interface_debug_print("htu21d: start register test.\n");
94
95 /* init */
96 res = htu21d_init(&gs_handle);
97 if (res != 0)
98 {
99 htu21d_interface_debug_print("htu21d: init failed.\n");
100
101 return 1;
102 }
103
104 /* htu21d_set_mode/htu21d_get_mode test */
105 htu21d_interface_debug_print("htu21d: htu21d_set_mode/htu21d_get_mode test.\n");
106
107 /* hold master mode */
108 res = htu21d_set_mode(&gs_handle, HTU21D_MODE_HOLD_MASTER);
109 if (res != 0)
110 {
111 htu21d_interface_debug_print("htu21d: set mode failed.\n");
112 (void)htu21d_deinit(&gs_handle);
113
114 return 1;
115 }
116
117 /* set hold master mode */
118 htu21d_interface_debug_print("htu21d: set hold master mode.\n");
119
120 /* get mode */
121 res = htu21d_get_mode(&gs_handle, &mode);
122 if (res != 0)
123 {
124 htu21d_interface_debug_print("htu21d: get mode failed.\n");
125 (void)htu21d_deinit(&gs_handle);
126
127 return 1;
128 }
129 htu21d_interface_debug_print("htu21d: check mode pin %s.\n", (HTU21D_MODE_HOLD_MASTER == mode) ? "ok" : "error");
130
131 /* no hold master mode */
133 if (res != 0)
134 {
135 htu21d_interface_debug_print("htu21d: set mode failed.\n");
136 (void)htu21d_deinit(&gs_handle);
137
138 return 1;
139 }
140
141 /* set hold master mode */
142 htu21d_interface_debug_print("htu21d: set no hold master mode.\n");
143
144 /* get mode */
145 res = htu21d_get_mode(&gs_handle, &mode);
146 if (res != 0)
147 {
148 htu21d_interface_debug_print("htu21d: get mode failed.\n");
149 (void)htu21d_deinit(&gs_handle);
150
151 return 1;
152 }
153 htu21d_interface_debug_print("htu21d: check mode pin %s.\n", (HTU21D_MODE_NO_HOLD_MASTER == mode) ? "ok" : "error");
154
155 /* htu21d_set_resolution/htu21d_get_resolution test */
156 htu21d_interface_debug_print("htu21d: htu21d_set_resolution/htu21d_get_resolution test.\n");
157
158 /* set resolution temp 11 bits and rh 11 bits */
160 if (res != 0)
161 {
162 htu21d_interface_debug_print("htu21d: set resolution failed.\n");
163 (void)htu21d_deinit(&gs_handle);
164
165 return 1;
166 }
167
168 /* set resolution temp 11 bits and rh 11 bits */
169 htu21d_interface_debug_print("htu21d: set resolution temp 11 bits and rh 11 bits.\n");
170
171 /* get resolution */
172 res = htu21d_get_resolution(&gs_handle, &resolution);
173 if (res != 0)
174 {
175 htu21d_interface_debug_print("htu21d: get resolution failed.\n");
176 (void)htu21d_deinit(&gs_handle);
177
178 return 1;
179 }
180 htu21d_interface_debug_print("htu21d: check resolution %s.\n", (HTU21D_RESOLUTION_TEMP_11_BITS_RH_11_BITS == resolution) ? "ok" : "error");
181
182 /* set resolution temp 12 bits and rh 8 bits */
184 if (res != 0)
185 {
186 htu21d_interface_debug_print("htu21d: set resolution failed.\n");
187 (void)htu21d_deinit(&gs_handle);
188
189 return 1;
190 }
191
192 /* set resolution temp 12 bits and rh 8 bits */
193 htu21d_interface_debug_print("htu21d: set resolution temp 12 bits and rh 8 bits.\n");
194
195 /* get resolution */
196 res = htu21d_get_resolution(&gs_handle, &resolution);
197 if (res != 0)
198 {
199 htu21d_interface_debug_print("htu21d: get resolution failed.\n");
200 (void)htu21d_deinit(&gs_handle);
201
202 return 1;
203 }
204 htu21d_interface_debug_print("htu21d: check resolution %s.\n", (HTU21D_RESOLUTION_TEMP_12_BITS_RH_8_BITS == resolution) ? "ok" : "error");
205
206 /* set resolution temp 13 bits and rh 10 bits */
208 if (res != 0)
209 {
210 htu21d_interface_debug_print("htu21d: set resolution failed.\n");
211 (void)htu21d_deinit(&gs_handle);
212
213 return 1;
214 }
215
216 /* set resolution temp 13 bits and rh 10 bits */
217 htu21d_interface_debug_print("htu21d: set resolution temp 13 bits and rh 10 bits.\n");
218
219 /* get resolution */
220 res = htu21d_get_resolution(&gs_handle, &resolution);
221 if (res != 0)
222 {
223 htu21d_interface_debug_print("htu21d: get resolution failed.\n");
224 (void)htu21d_deinit(&gs_handle);
225
226 return 1;
227 }
228 htu21d_interface_debug_print("htu21d: check resolution %s.\n", (HTU21D_RESOLUTION_TEMP_13_BITS_RH_10_BITS == resolution) ? "ok" : "error");
229
230 /* set resolution temp 14 bits and rh 12 bits */
232 if (res != 0)
233 {
234 htu21d_interface_debug_print("htu21d: set resolution failed.\n");
235 (void)htu21d_deinit(&gs_handle);
236
237 return 1;
238 }
239
240 /* set resolution temp 14 bits and rh 12 bits */
241 htu21d_interface_debug_print("htu21d: set resolution temp 14 bits and rh 12 bits.\n");
242
243 /* get resolution */
244 res = htu21d_get_resolution(&gs_handle, &resolution);
245 if (res != 0)
246 {
247 htu21d_interface_debug_print("htu21d: get resolution failed.\n");
248 (void)htu21d_deinit(&gs_handle);
249
250 return 1;
251 }
252 htu21d_interface_debug_print("htu21d: check resolution %s.\n", (HTU21D_RESOLUTION_TEMP_14_BITS_RH_12_BITS == resolution) ? "ok" : "error");
253
254 /* htu21d_set_heater/htu21d_get_heater test */
255 htu21d_interface_debug_print("htu21d: htu21d_set_heater/htu21d_get_heater test.\n");
256
257 /* enable heater */
258 res = htu21d_set_heater(&gs_handle, HTU21D_BOOL_TRUE);
259 if (res != 0)
260 {
261 htu21d_interface_debug_print("htu21d: set heater failed.\n");
262 (void)htu21d_deinit(&gs_handle);
263
264 return 1;
265 }
266
267 /* enable heater */
268 htu21d_interface_debug_print("htu21d: enable heater.\n");
269
270 /* get the heater status */
271 res = htu21d_get_heater(&gs_handle, &enable);
272 if (res != 0)
273 {
274 htu21d_interface_debug_print("htu21d: get heater failed.\n");
275 (void)htu21d_deinit(&gs_handle);
276
277 return 1;
278 }
279 htu21d_interface_debug_print("htu21d: check heater %s.\n", (HTU21D_BOOL_TRUE == enable) ? "ok" : "error");
280
281 /* disable heater */
282 res = htu21d_set_heater(&gs_handle, HTU21D_BOOL_FALSE);
283 if (res != 0)
284 {
285 htu21d_interface_debug_print("htu21d: set heater failed.\n");
286 (void)htu21d_deinit(&gs_handle);
287
288 return 1;
289 }
290
291 /* disable heater */
292 htu21d_interface_debug_print("htu21d: disable heater.\n");
293
294 /* get the heater status */
295 res = htu21d_get_heater(&gs_handle, &enable);
296 if (res != 0)
297 {
298 htu21d_interface_debug_print("htu21d: get heater failed.\n");
299 (void)htu21d_deinit(&gs_handle);
300
301 return 1;
302 }
303 htu21d_interface_debug_print("htu21d: check heater %s.\n", (HTU21D_BOOL_FALSE == enable) ? "ok" : "error");
304
305 /* htu21d_set_disable_otp_reload/htu21d_get_disable_otp_reload test */
306 htu21d_interface_debug_print("htu21d: htu21d_set_disable_otp_reload/htu21d_get_disable_otp_reload test.\n");
307
308 /* enable otp reload */
310 if (res != 0)
311 {
312 htu21d_interface_debug_print("htu21d: set disable otp reload failed.\n");
313 (void)htu21d_deinit(&gs_handle);
314
315 return 1;
316 }
317
318 /* enable otp reload */
319 htu21d_interface_debug_print("htu21d: enable otp reload.\n");
320
321 /* get disable otp reload */
322 res = htu21d_get_disable_otp_reload(&gs_handle, &enable);
323 if (res != 0)
324 {
325 htu21d_interface_debug_print("htu21d: get disable otp reload failed.\n");
326 (void)htu21d_deinit(&gs_handle);
327
328 return 1;
329 }
330 htu21d_interface_debug_print("htu21d: check otp reload %s.\n", (HTU21D_BOOL_FALSE == enable) ? "ok" : "error");
331
332 /* disable otp reload */
334 if (res != 0)
335 {
336 htu21d_interface_debug_print("htu21d: set disable otp reload failed.\n");
337 (void)htu21d_deinit(&gs_handle);
338
339 return 1;
340 }
341
342 /* disable otp reload */
343 htu21d_interface_debug_print("htu21d: disable otp reload.\n");
344
345 /* get disable otp reload */
346 res = htu21d_get_disable_otp_reload(&gs_handle, &enable);
347 if (res != 0)
348 {
349 htu21d_interface_debug_print("htu21d: get disable otp reload failed.\n");
350 (void)htu21d_deinit(&gs_handle);
351
352 return 1;
353 }
354 htu21d_interface_debug_print("htu21d: check otp reload %s.\n", (HTU21D_BOOL_TRUE == enable) ? "ok" : "error");
355
356 /* htu21d_get_serial_number test */
357 htu21d_interface_debug_print("htu21d: htu21d_get_serial_number test.\n");
358
359 /* get serial number */
360 res = htu21d_get_serial_number(&gs_handle, &number);
361 if (res != 0)
362 {
363 htu21d_interface_debug_print("htu21d: get serial number failed.\n");
364 (void)htu21d_deinit(&gs_handle);
365
366 return 1;
367 }
368
369 /* output */
370 htu21d_interface_debug_print("htu21d: serial number is 0x%0llX.\n", number);
371
372 /* htu21d_get_battery_status test */
373 htu21d_interface_debug_print("htu21d: htu21d_get_battery_status test.\n");
374
375 /* get battery status */
376 res =htu21d_get_battery_status(&gs_handle, &status);
377 if (res != 0)
378 {
379 htu21d_interface_debug_print("htu21d: get battery status failed.\n");
380 (void)htu21d_deinit(&gs_handle);
381
382 return 1;
383 }
384
385 /* output */
386 htu21d_interface_debug_print("htu21d: status is 0x%02X.\n", status);
387
388 /* htu21d_soft_reset test */
389 htu21d_interface_debug_print("htu21d: htu21d_soft_reset test.\n");
390
391 /* soft reset */
392 res = htu21d_soft_reset(&gs_handle);
393 if (res != 0)
394 {
395 htu21d_interface_debug_print("htu21d: soft reset failed.\n");
396 (void)htu21d_deinit(&gs_handle);
397
398 return 1;
399 }
400
401 /* finish register test */
402 htu21d_interface_debug_print("htu21d: finish register test.\n");
403 (void)htu21d_deinit(&gs_handle);
404
405 return 0;
406}
driver htu21d register test header file
uint8_t htu21d_get_disable_otp_reload(htu21d_handle_t *handle, htu21d_bool_t *enable)
get the disable otp reload status
uint8_t htu21d_set_disable_otp_reload(htu21d_handle_t *handle, htu21d_bool_t enable)
enable or disable otp reload
uint8_t htu21d_get_heater(htu21d_handle_t *handle, htu21d_bool_t *enable)
get the heater status
uint8_t htu21d_soft_reset(htu21d_handle_t *handle)
soft reset
uint8_t htu21d_get_resolution(htu21d_handle_t *handle, htu21d_resolution_t *resolution)
get the resolution
uint8_t htu21d_info(htu21d_info_t *info)
get chip's information
uint8_t htu21d_set_mode(htu21d_handle_t *handle, htu21d_mode_t mode)
set the chip mode
uint8_t htu21d_init(htu21d_handle_t *handle)
initialize the chip
htu21d_resolution_t
htu21d resolution enumeration definition
htu21d_mode_t
htu21d mode enumeration definition
uint8_t htu21d_set_resolution(htu21d_handle_t *handle, htu21d_resolution_t resolution)
set the resolution
uint8_t htu21d_set_heater(htu21d_handle_t *handle, htu21d_bool_t enable)
enable or disable the heater
struct htu21d_handle_s htu21d_handle_t
htu21d handle structure definition
struct htu21d_info_s htu21d_info_t
htu21d information structure definition
uint8_t htu21d_get_mode(htu21d_handle_t *handle, htu21d_mode_t *mode)
get the chip mode
uint8_t htu21d_get_serial_number(htu21d_handle_t *handle, uint64_t *number)
get the serial number
uint8_t htu21d_get_battery_status(htu21d_handle_t *handle, htu21d_status_t *status)
get the battery status
htu21d_status_t
htu21d status enumeration definition
htu21d_bool_t
htu21d bool enumeration definition
uint8_t htu21d_deinit(htu21d_handle_t *handle)
close the chip
@ HTU21D_RESOLUTION_TEMP_13_BITS_RH_10_BITS
@ HTU21D_RESOLUTION_TEMP_14_BITS_RH_12_BITS
@ HTU21D_RESOLUTION_TEMP_12_BITS_RH_8_BITS
@ HTU21D_RESOLUTION_TEMP_11_BITS_RH_11_BITS
@ HTU21D_MODE_HOLD_MASTER
@ HTU21D_MODE_NO_HOLD_MASTER
@ HTU21D_BOOL_FALSE
@ HTU21D_BOOL_TRUE
uint8_t htu21d_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t htu21d_interface_iic_write_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
uint8_t htu21d_interface_iic_init(void)
interface iic bus init
uint8_t htu21d_interface_iic_read_cmd(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
uint8_t htu21d_interface_iic_deinit(void)
interface iic bus deinit
uint8_t htu21d_interface_iic_read_with_scl(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read with scl clock
uint8_t htu21d_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void htu21d_interface_debug_print(const char *const fmt,...)
interface print format data
void htu21d_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t htu21d_register_test(void)
register test
float supply_voltage_max_v
uint32_t driver_version
char manufacturer_name[32]
float supply_voltage_min_v
char chip_name[32]