LibDriver SHT2X
Loading...
Searching...
No Matches
driver_sht2x_register_test.c
Go to the documentation of this file.
1
36
38
39static sht2x_handle_t gs_handle;
40
49{
50 uint8_t res;
51 uint8_t sn[8];
52 sht2x_status_t status;
53 sht2x_bool_t enable;
54 sht2x_info_t info;
55 sht2x_mode_t mode;
56 sht2x_resolution_t resolution;
57
58 /* link functions */
70
71 /* sht2x info */
72 res = sht2x_info(&info);
73 if (res != 0)
74 {
75 sht2x_interface_debug_print("sht2x: get info failed.\n");
76
77 return 1;
78 }
79 else
80 {
81 /* print chip information */
82 sht2x_interface_debug_print("sht2x: chip is %s.\n", info.chip_name);
83 sht2x_interface_debug_print("sht2x: manufacturer is %s.\n", info.manufacturer_name);
84 sht2x_interface_debug_print("sht2x: interface is %s.\n", info.interface);
85 sht2x_interface_debug_print("sht2x: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
86 sht2x_interface_debug_print("sht2x: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
87 sht2x_interface_debug_print("sht2x: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
88 sht2x_interface_debug_print("sht2x: max current is %0.2fmA.\n", info.max_current_ma);
89 sht2x_interface_debug_print("sht2x: max temperature is %0.1fC.\n", info.temperature_max);
90 sht2x_interface_debug_print("sht2x: min temperature is %0.1fC.\n", info.temperature_min);
91 }
92
93 /* start register test */
94 sht2x_interface_debug_print("sht2x: start register test.\n");
95
96 /* sht2x init */
97 res = sht2x_init(&gs_handle);
98 if (res != 0)
99 {
100 sht2x_interface_debug_print("sht2x: init failed.\n");
101
102 return 1;
103 }
104
105 /* sht2x_set_mode/sht2x_get_mode test */
106 sht2x_interface_debug_print("sht2x: sht2x_set_mode/sht2x_get_mode test.\n");
107
108 /* set hold master mode */
109 res = sht2x_set_mode(&gs_handle, SHT2X_MODE_HOLD_MASTER);
110 if (res != 0)
111 {
112 sht2x_interface_debug_print("sht2x: set mode failed.\n");
113 (void)sht2x_deinit(&gs_handle);
114
115 return 1;
116 }
117 sht2x_interface_debug_print("sht2x: set hold master mode.\n");
118 res = sht2x_get_mode(&gs_handle, &mode);
119 if (res != 0)
120 {
121 sht2x_interface_debug_print("sht2x: get mode failed.\n");
122 (void)sht2x_deinit(&gs_handle);
123
124 return 1;
125 }
126 sht2x_interface_debug_print("sht2x: check mode %s.\n", (mode == SHT2X_MODE_HOLD_MASTER) ? "ok" : "error");
127
128 /* set no hold master mode */
129 res = sht2x_set_mode(&gs_handle, SHT2X_MODE_NO_HOLD_MASTER);
130 if (res != 0)
131 {
132 sht2x_interface_debug_print("sht2x: set mode failed.\n");
133 (void)sht2x_deinit(&gs_handle);
134
135 return 1;
136 }
137 sht2x_interface_debug_print("sht2x: set no hold master mode.\n");
138 res = sht2x_get_mode(&gs_handle, &mode);
139 if (res != 0)
140 {
141 sht2x_interface_debug_print("sht2x: get mode failed.\n");
142 (void)sht2x_deinit(&gs_handle);
143
144 return 1;
145 }
146 sht2x_interface_debug_print("sht2x: check mode %s.\n", (mode == SHT2X_MODE_NO_HOLD_MASTER) ? "ok" : "error");
147
148 /* sht2x_set_resolution/sht2x_get_resolution test */
149 sht2x_interface_debug_print("sht2x: sht2x_set_resolution/sht2x_get_resolution test.\n");
150
151 /* set resolution rh 12bit, t 14bit */
153 if (res != 0)
154 {
155 sht2x_interface_debug_print("sht2x: set resolution failed.\n");
156 (void)sht2x_deinit(&gs_handle);
157
158 return 1;
159 }
160 sht2x_interface_debug_print("sht2x: set resolution rh 12bit, t 14bit.\n");
161 res = sht2x_get_resolution(&gs_handle, &resolution);
162 if (res != 0)
163 {
164 sht2x_interface_debug_print("sht2x: get resolution failed.\n");
165 (void)sht2x_deinit(&gs_handle);
166
167 return 1;
168 }
169 sht2x_interface_debug_print("sht2x: check resolution %s.\n", (resolution == SHT2X_RESOLUTION_RH_12BIT_T_14BIT) ? "ok" : "error");
170
171 /* set resolution rh 8bit, t 12bit */
173 if (res != 0)
174 {
175 sht2x_interface_debug_print("sht2x: set resolution failed.\n");
176 (void)sht2x_deinit(&gs_handle);
177
178 return 1;
179 }
180 sht2x_interface_debug_print("sht2x: set resolution rh 8bit, t 12bit.\n");
181 res = sht2x_get_resolution(&gs_handle, &resolution);
182 if (res != 0)
183 {
184 sht2x_interface_debug_print("sht2x: get resolution failed.\n");
185 (void)sht2x_deinit(&gs_handle);
186
187 return 1;
188 }
189 sht2x_interface_debug_print("sht2x: check resolution %s.\n", (resolution == SHT2X_RESOLUTION_RH_8BIT_T_12BIT) ? "ok" : "error");
190
191 /* set resolution rh 10bit, t 13bit */
193 if (res != 0)
194 {
195 sht2x_interface_debug_print("sht2x: set resolution failed.\n");
196 (void)sht2x_deinit(&gs_handle);
197
198 return 1;
199 }
200 sht2x_interface_debug_print("sht2x: set resolution rh 10bit, t 13bit.\n");
201 res = sht2x_get_resolution(&gs_handle, &resolution);
202 if (res != 0)
203 {
204 sht2x_interface_debug_print("sht2x: get resolution failed.\n");
205 (void)sht2x_deinit(&gs_handle);
206
207 return 1;
208 }
209 sht2x_interface_debug_print("sht2x: check resolution %s.\n", (resolution == SHT2X_RESOLUTION_RH_10BIT_T_13BIT) ? "ok" : "error");
210
211 /* set resolution rh 11bit, t 11bit */
213 if (res != 0)
214 {
215 sht2x_interface_debug_print("sht2x: set resolution failed.\n");
216 (void)sht2x_deinit(&gs_handle);
217
218 return 1;
219 }
220 sht2x_interface_debug_print("sht2x: set resolution rh 11bit, t 11bit.\n");
221 res = sht2x_get_resolution(&gs_handle, &resolution);
222 if (res != 0)
223 {
224 sht2x_interface_debug_print("sht2x: get resolution failed.\n");
225 (void)sht2x_deinit(&gs_handle);
226
227 return 1;
228 }
229 sht2x_interface_debug_print("sht2x: check resolution %s.\n", (resolution == SHT2X_RESOLUTION_RH_11BIT_T_11BIT) ? "ok" : "error");
230
231 /* sht2x_set_heater/sht2x_get_heater test */
232 sht2x_interface_debug_print("sht2x: sht2x_set_heater/sht2x_get_heater test.\n");
233
234 /* enable heater */
235 res = sht2x_set_heater(&gs_handle, SHT2X_BOOL_TRUE);
236 if (res != 0)
237 {
238 sht2x_interface_debug_print("sht2x: set heater failed.\n");
239 (void)sht2x_deinit(&gs_handle);
240
241 return 1;
242 }
243 sht2x_interface_debug_print("sht2x: enable heater.\n");
244 res = sht2x_get_heater(&gs_handle, &enable);
245 if (res != 0)
246 {
247 sht2x_interface_debug_print("sht2x: get heater failed.\n");
248 (void)sht2x_deinit(&gs_handle);
249
250 return 1;
251 }
252 sht2x_interface_debug_print("sht2x: check heater %s.\n", (enable == SHT2X_BOOL_TRUE) ? "ok" : "error");
253
254 /* disable heater */
255 res = sht2x_set_heater(&gs_handle, SHT2X_BOOL_FALSE);
256 if (res != 0)
257 {
258 sht2x_interface_debug_print("sht2x: set heater failed.\n");
259 (void)sht2x_deinit(&gs_handle);
260
261 return 1;
262 }
263 sht2x_interface_debug_print("sht2x: disable heater.\n");
264 res = sht2x_get_heater(&gs_handle, &enable);
265 if (res != 0)
266 {
267 sht2x_interface_debug_print("sht2x: get heater failed.\n");
268 (void)sht2x_deinit(&gs_handle);
269
270 return 1;
271 }
272 sht2x_interface_debug_print("sht2x: check heater %s.\n", (enable == SHT2X_BOOL_FALSE) ? "ok" : "error");
273
274 /* sht2x_set_disable_otp_reload/sht2x_get_disable_otp_reload test */
275 sht2x_interface_debug_print("sht2x: sht2x_set_disable_otp_reload/sht2x_get_disable_otp_reload test.\n");
276
277 /* enable disable otp reload */
279 if (res != 0)
280 {
281 sht2x_interface_debug_print("sht2x: set disable otp reload failed.\n");
282 (void)sht2x_deinit(&gs_handle);
283
284 return 1;
285 }
286 sht2x_interface_debug_print("sht2x: enable disable otp reload.\n");
287 res = sht2x_get_disable_otp_reload(&gs_handle, &enable);
288 if (res != 0)
289 {
290 sht2x_interface_debug_print("sht2x: get disable otp reload failed.\n");
291 (void)sht2x_deinit(&gs_handle);
292
293 return 1;
294 }
295 sht2x_interface_debug_print("sht2x: check disable otp reload %s.\n", (enable == SHT2X_BOOL_TRUE) ? "ok" : "error");
296
297 /* disable disable otp reload */
299 if (res != 0)
300 {
301 sht2x_interface_debug_print("sht2x: set disable otp reload failed.\n");
302 (void)sht2x_deinit(&gs_handle);
303
304 return 1;
305 }
306 sht2x_interface_debug_print("sht2x: disable disable otp reload.\n");
307 res = sht2x_get_disable_otp_reload(&gs_handle, &enable);
308 if (res != 0)
309 {
310 sht2x_interface_debug_print("sht2x: get disable otp reload failed.\n");
311 (void)sht2x_deinit(&gs_handle);
312
313 return 1;
314 }
315 sht2x_interface_debug_print("sht2x: check disable otp reload %s.\n", (enable == SHT2X_BOOL_FALSE) ? "ok" : "error");
316
317 /* sht2x_get_status test */
318 sht2x_interface_debug_print("sht2x: sht2x_get_status test.\n");
319
320 /* get status */
321 res = sht2x_get_status(&gs_handle, &status);
322 if (res != 0)
323 {
324 sht2x_interface_debug_print("sht2x: get status failed.\n");
325 (void)sht2x_deinit(&gs_handle);
326
327 return 1;
328 }
329 sht2x_interface_debug_print("sht2x: check vdd 2.25v status %s.\n", (status == SHT35_STATUS_VDD_OVER_2P25V) ? "over" : "less");
330
331 /* sht2x_get_serial_number test */
332 sht2x_interface_debug_print("sht2x: sht2x_get_serial_number test.\n");
333
334 /* get serial number */
335 res = sht2x_get_serial_number(&gs_handle, sn);
336 if (res != 0)
337 {
338 sht2x_interface_debug_print("sht2x: get serial number failed.\n");
339 (void)sht2x_deinit(&gs_handle);
340
341 return 1;
342 }
343 sht2x_interface_debug_print("sht2x: sn 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X 0x%02X.\n",
344 sn[0], sn[1], sn[2], sn[3], sn[4], sn[5], sn[6], sn[7]);
345
346 /* sht2x_soft_reset test */
347 sht2x_interface_debug_print("sht2x: sht2x_soft_reset test.\n");
348
349 /* soft reset */
350 res = sht2x_soft_reset(&gs_handle);
351 if (res != 0)
352 {
353 sht2x_interface_debug_print("sht2x: soft reset failed.\n");
354 (void)sht2x_deinit(&gs_handle);
355
356 return 1;
357 }
358 sht2x_interface_debug_print("sht2x: soft reset.\n");
359
360 /* finish register test */
361 sht2x_interface_debug_print("sht2x: finish register test.\n");
362 (void)sht2x_deinit(&gs_handle);
363
364 return 0;
365}
driver sht2x register test header file
struct sht2x_info_s sht2x_info_t
sht2x information structure definition
uint8_t sht2x_set_heater(sht2x_handle_t *handle, sht2x_bool_t enable)
enable or disable heater
uint8_t sht2x_get_status(sht2x_handle_t *handle, sht2x_status_t *status)
get status
sht2x_mode_t
sht2x mode enumeration definition
uint8_t sht2x_init(sht2x_handle_t *handle)
initialize the chip
uint8_t sht2x_soft_reset(sht2x_handle_t *handle)
soft reset the chip
uint8_t sht2x_get_mode(sht2x_handle_t *handle, sht2x_mode_t *mode)
get chip mode
uint8_t sht2x_get_disable_otp_reload(sht2x_handle_t *handle, sht2x_bool_t *enable)
get disable otp reload status
uint8_t sht2x_info(sht2x_info_t *info)
get chip's information
uint8_t sht2x_get_resolution(sht2x_handle_t *handle, sht2x_resolution_t *resolution)
get resolution
uint8_t sht2x_set_resolution(sht2x_handle_t *handle, sht2x_resolution_t resolution)
set resolution
struct sht2x_handle_s sht2x_handle_t
sht2x handle structure definition
uint8_t sht2x_set_disable_otp_reload(sht2x_handle_t *handle, sht2x_bool_t enable)
enable or disable disable otp reload
uint8_t sht2x_get_serial_number(sht2x_handle_t *handle, uint8_t sn[8])
get serial number
sht2x_status_t
sht2x status enumeration definition
uint8_t sht2x_deinit(sht2x_handle_t *handle)
close the chip
uint8_t sht2x_set_mode(sht2x_handle_t *handle, sht2x_mode_t mode)
set chip mode
sht2x_resolution_t
sht2x resolution enumeration definition
uint8_t sht2x_get_heater(sht2x_handle_t *handle, sht2x_bool_t *enable)
get heater status
sht2x_bool_t
sht2x bool enumeration definition
@ SHT2X_MODE_HOLD_MASTER
@ SHT2X_MODE_NO_HOLD_MASTER
@ SHT35_STATUS_VDD_OVER_2P25V
@ SHT2X_RESOLUTION_RH_11BIT_T_11BIT
@ SHT2X_RESOLUTION_RH_12BIT_T_14BIT
@ SHT2X_RESOLUTION_RH_10BIT_T_13BIT
@ SHT2X_RESOLUTION_RH_8BIT_T_12BIT
@ SHT2X_BOOL_FALSE
@ SHT2X_BOOL_TRUE
uint8_t sht2x_interface_iic_read_command(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus read command
void sht2x_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t sht2x_interface_iic_init(void)
interface iic bus init
uint8_t sht2x_interface_iic_deinit(void)
interface iic bus deinit
void sht2x_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t sht2x_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t sht2x_interface_iic_write_command(uint8_t addr, uint8_t *buf, uint16_t len)
interface iic bus write command
uint8_t sht2x_interface_iic_read_with_wait(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read with wait
uint8_t sht2x_interface_iic_read_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus read with 16 bits register address
uint8_t sht2x_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
uint8_t sht2x_register_test(void)
register test
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]