LibDriver SHTC3
Loading...
Searching...
No Matches
driver_shtc3_read_test.c
Go to the documentation of this file.
1
36
38
39static shtc3_handle_t gs_handle;
40
49uint8_t shtc3_read_test(uint32_t times)
50{
51 uint8_t res;
52 uint32_t i;
53 shtc3_info_t info;
54
55 /* link functions */
63
64 /* shtc3 info */
65 res = shtc3_info(&info);
66 if (res != 0)
67 {
68 shtc3_interface_debug_print("shtc3: get info failed.\n");
69
70 return 1;
71 }
72 else
73 {
74 /* print chip information */
75 shtc3_interface_debug_print("shtc3: chip is %s.\n", info.chip_name);
76 shtc3_interface_debug_print("shtc3: manufacturer is %s.\n", info.manufacturer_name);
77 shtc3_interface_debug_print("shtc3: interface is %s.\n", info.interface);
78 shtc3_interface_debug_print("shtc3: driver version is %d.%d.\n", info.driver_version / 1000, (info.driver_version % 1000) / 100);
79 shtc3_interface_debug_print("shtc3: min supply voltage is %0.1fV.\n", info.supply_voltage_min_v);
80 shtc3_interface_debug_print("shtc3: max supply voltage is %0.1fV.\n", info.supply_voltage_max_v);
81 shtc3_interface_debug_print("shtc3: max current is %0.2fmA.\n", info.max_current_ma);
82 shtc3_interface_debug_print("shtc3: max temperature is %0.1fC.\n", info.temperature_max);
83 shtc3_interface_debug_print("shtc3: min temperature is %0.1fC.\n", info.temperature_min);
84 }
85
86 /* start read test */
87 shtc3_interface_debug_print("shtc3: start read test.\n");
88
89 /* shtc3 init */
90 res = shtc3_init(&gs_handle);
91 if (res != 0)
92 {
93 shtc3_interface_debug_print("shtc3: init failed.\n");
94
95 return 1;
96 }
97
98 /* enable clock stretching */
99 shtc3_interface_debug_print("shtc3: enable clock stretching.\n");
100
101 /* normal read test */
102 shtc3_interface_debug_print("shtc3: normal read test.\n");
103
104 /* wait 10 ms */
106 for (i = 0; i < times; i++)
107 {
108 uint16_t temperature_raw;
109 float temperature_s;
110 uint16_t humidity_raw;
111 float humidity_s;
112
113 res = shtc3_read(&gs_handle, SHTC3_BOOL_TRUE, (uint16_t *)&temperature_raw, (float *)&temperature_s,
114 (uint16_t *)&humidity_raw, (float *)&humidity_s);
115 if (res != 0)
116 {
117 shtc3_interface_debug_print("shtc3: read failed.\n");
118 (void)shtc3_deinit(&gs_handle);
119
120 return 1;
121 }
122 shtc3_interface_debug_print("shtc3: temperature is %0.2fC.\n", temperature_s);
123 shtc3_interface_debug_print("shtc3: humidity is %0.2f%%.\n", humidity_s);
124
125 /* wait 2500 ms */
127 }
128
129 /* low power read test */
130 shtc3_interface_debug_print("shtc3: low power read test.\n");
131
132 /* wait 10 ms */
134 for (i = 0; i < times; i++)
135 {
136 uint16_t temperature_raw;
137 float temperature_s;
138 uint16_t humidity_raw;
139 float humidity_s;
140
141 res = shtc3_read_low_power(&gs_handle, SHTC3_BOOL_TRUE, (uint16_t *)&temperature_raw, (float *)&temperature_s,
142 (uint16_t *)&humidity_raw, (float *)&humidity_s);
143 if (res != 0)
144 {
145 shtc3_interface_debug_print("shtc3: read low power failed.\n");
146 (void)shtc3_deinit(&gs_handle);
147
148 return 1;
149 }
150 shtc3_interface_debug_print("shtc3: temperature is %0.2fC.\n", temperature_s);
151 shtc3_interface_debug_print("shtc3: humidity is %0.2f%%.\n", humidity_s);
152
153 /* wait 2500 ms */
155 }
156
157#ifndef SHTC3_DISABLE_NO_CLOCK_STRETCHING_TEST
158 /* disable clock stretching */
159 shtc3_interface_debug_print("shtc3: disable clock stretching.\n");
160
161 /* link functions */
163
164 /* normal read test */
165 shtc3_interface_debug_print("shtc3: normal read test.\n");
166
167 /* wait 10 ms */
169 for (i = 0; i < times; i++)
170 {
171 uint16_t temperature_raw;
172 float temperature_s;
173 uint16_t humidity_raw;
174 float humidity_s;
175
176 res = shtc3_read(&gs_handle, SHTC3_BOOL_FALSE, (uint16_t *)&temperature_raw, (float *)&temperature_s,
177 (uint16_t *)&humidity_raw, (float *)&humidity_s);
178 if (res != 0)
179 {
180 shtc3_interface_debug_print("shtc3: read failed.\n");
181 (void)shtc3_deinit(&gs_handle);
182
183 return 1;
184 }
185 shtc3_interface_debug_print("shtc3: temperature is %0.2fC.\n", temperature_s);
186 shtc3_interface_debug_print("shtc3: humidity is %0.2f%%.\n", humidity_s);
187
188 /* wait 2500 ms */
190 }
191
192 /* low power read test */
193 shtc3_interface_debug_print("shtc3: low power read test.\n");
194
195 /* wait 10 ms */
197 for (i = 0; i < times; i++)
198 {
199 uint16_t temperature_raw;
200 float temperature_s;
201 uint16_t humidity_raw;
202 float humidity_s;
203
204 res = shtc3_read_low_power(&gs_handle, SHTC3_BOOL_FALSE, (uint16_t *)&temperature_raw, (float *)&temperature_s,
205 (uint16_t *)&humidity_raw, (float *)&humidity_s);
206 if (res != 0)
207 {
208 shtc3_interface_debug_print("shtc3: read low power failed.\n");
209 (void)shtc3_deinit(&gs_handle);
210
211 return 1;
212 }
213 shtc3_interface_debug_print("shtc3: temperature is %0.2fC.\n", temperature_s);
214 shtc3_interface_debug_print("shtc3: humidity is %0.2f%%.\n", humidity_s);
215
216 /* wait 2500 ms */
218 }
219#endif
220
221 /* finish read test */
222 shtc3_interface_debug_print("shtc3: finish read test.\n");
223 (void)shtc3_deinit(&gs_handle);
224
225 return 0;
226}
driver shtc3 read test header file
uint8_t shtc3_init(shtc3_handle_t *handle)
initialize the chip
uint8_t shtc3_info(shtc3_info_t *info)
get chip's information
uint8_t shtc3_read(shtc3_handle_t *handle, shtc3_bool_t clock_stretching_enable, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
normal read
uint8_t shtc3_deinit(shtc3_handle_t *handle)
close the chip
struct shtc3_handle_s shtc3_handle_t
shtc3 handle structure definition
uint8_t shtc3_read_low_power(shtc3_handle_t *handle, shtc3_bool_t clock_stretching_enable, uint16_t *temperature_raw, float *temperature_s, uint16_t *humidity_raw, float *humidity_s)
read in low power mode
struct shtc3_info_s shtc3_info_t
shtc3 information structure definition
@ SHTC3_BOOL_FALSE
@ SHTC3_BOOL_TRUE
uint8_t shtc3_interface_iic_write_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus write with 16 bits register address
uint8_t shtc3_interface_iic_deinit(void)
interface iic bus deinit
uint8_t shtc3_interface_iic_init(void)
interface iic bus init
uint8_t shtc3_interface_iic_scl_read_address16(uint8_t addr, uint16_t reg, uint8_t *buf, uint16_t len)
interface iic bus read with 16 bits register address
void shtc3_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t shtc3_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
void shtc3_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t shtc3_read_test(uint32_t times)
read 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]