LibDriver BME688
Loading...
Searching...
No Matches
driver_bme688_parallel.c
Go to the documentation of this file.
1
36
38
39static bme688_handle_t gs_handle;
40
54 void (*callback)(uint8_t status, bme688_parallel_data_t *data, uint8_t len))
55{
56 uint8_t res;
57
58 /* link interface function */
70 DRIVER_BME688_LINK_RECEIVE_CALLBACK(&gs_handle, callback);
71
72 /* set interface */
73 res = bme688_set_interface(&gs_handle, interface);
74 if (res != 0)
75 {
76 bme688_interface_debug_print("bme688: set interface failed.\n");
77
78 return 1;
79 }
80
81 /* set addr pin */
82 res = bme688_set_addr_pin(&gs_handle, addr_pin);
83 if (res != 0)
84 {
85 bme688_interface_debug_print("bme688: set addr pin failed.\n");
86
87 return 1;
88 }
89
90 /* bme688 init */
91 res = bme688_init(&gs_handle);
92 if (res != 0)
93 {
94 bme688_interface_debug_print("bme688: init failed.\n");
95
96 return 1;
97 }
98
99 /* set sleep mode */
100 res = bme688_set_mode(&gs_handle, BME688_MODE_SLEEP);
101 if (res != 0)
102 {
103 bme688_interface_debug_print("bme688: set mode failed.\n");
104 (void)bme688_deinit(&gs_handle);
105
106 return 1;
107 }
108
109 /* set default temperature oversampling */
111 if (res != 0)
112 {
113 bme688_interface_debug_print("bme688: set temperature oversampling failed.\n");
114 (void)bme688_deinit(&gs_handle);
115
116 return 1;
117 }
118
119 /* set default pressure oversampling */
121 if (res != 0)
122 {
123 bme688_interface_debug_print("bme688: set pressure oversampling failed.\n");
124 (void)bme688_deinit(&gs_handle);
125
126 return 1;
127 }
128
129 /* set default humidity oversampling */
131 if (res != 0)
132 {
133 bme688_interface_debug_print("bme688: set humidity oversampling failed.\n");
134 (void)bme688_deinit(&gs_handle);
135
136 return 1;
137 }
138
139 /* set default filter */
141 if (res != 0)
142 {
143 bme688_interface_debug_print("bme688: set filter failed.\n");
144 (void)bme688_deinit(&gs_handle);
145
146 return 1;
147 }
148
149 /* set default spi wire */
151 if (res != 0)
152 {
153 bme688_interface_debug_print("bme688: set spi wire failed.\n");
154 (void)bme688_deinit(&gs_handle);
155
156 return 1;
157 }
158
159 /* set parallel config */
160 res = bme688_parallel_config(&gs_handle, config);
161 if (res != 0)
162 {
163 bme688_interface_debug_print("bme688: parallel config failed.\n");
164 (void)bme688_deinit(&gs_handle);
165
166 return 1;
167 }
168
169 /* disable heater off */
170 res = bme688_set_heater_off(&gs_handle, BME688_BOOL_FALSE);
171 if (res != 0)
172 {
173 bme688_interface_debug_print("bme688: set heat off failed.\n");
174 (void)bme688_deinit(&gs_handle);
175
176 return 1;
177 }
178
179 /* enable run gas */
180 res = bme688_set_run_gas(&gs_handle, BME688_BOOL_TRUE);
181 if (res != 0)
182 {
183 bme688_interface_debug_print("bme688: set run gas failed.\n");
184 (void)bme688_deinit(&gs_handle);
185
186 return 1;
187 }
188
189 /* set parallel mode */
190 res = bme688_set_mode(&gs_handle, BME688_MODE_PARALLEL);
191 if (res != 0)
192 {
193 bme688_interface_debug_print("bme688: set mode failed.\n");
194 (void)bme688_deinit(&gs_handle);
195
196 return 1;
197 }
198
199 return 0;
200}
201
210{
211 /* set sleep mode */
212 if (bme688_set_mode(&gs_handle, BME688_MODE_SLEEP) != 0)
213 {
214 return 1;
215 }
216
217 /* heater off */
218 if (bme688_set_heater_off(&gs_handle, BME688_BOOL_TRUE) != 0)
219 {
220 return 1;
221 }
222
223 /* close bme688 */
224 if (bme688_deinit(&gs_handle) != 0)
225 {
226 return 1;
227 }
228
229 return 0;
230}
231
240{
241 if (bme688_parallel_progress(&gs_handle) != 0)
242 {
243 return 1;
244 }
245
246 return 0;
247}
248
257{
258 if (bme688_parallel_reset(&gs_handle) != 0)
259 {
260 return 1;
261 }
262
263 return 0;
264}
driver bme688 parallel header file
uint8_t bme688_set_filter(bme688_handle_t *handle, bme688_filter_t filter)
set filter
uint8_t bme688_set_interface(bme688_handle_t *handle, bme688_interface_t interface)
set the interface
bme688_address_t
bme688 address enumeration definition
uint8_t bme688_set_addr_pin(bme688_handle_t *handle, bme688_address_t addr_pin)
set the iic address pin
uint8_t bme688_set_temperature_oversampling(bme688_handle_t *handle, bme688_oversampling_t oversampling)
set temperature oversampling
uint8_t bme688_set_mode(bme688_handle_t *handle, bme688_mode_t mode)
set mode
uint8_t bme688_parallel_config(bme688_handle_t *handle, bme688_parallel_config_t *config)
parallel config
uint8_t bme688_set_run_gas(bme688_handle_t *handle, bme688_bool_t enable)
enable or disable run gas
uint8_t bme688_set_spi_wire(bme688_handle_t *handle, bme688_spi_wire_t spi)
set spi wire
uint8_t bme688_init(bme688_handle_t *handle)
initialize the chip
uint8_t bme688_deinit(bme688_handle_t *handle)
close the chip
uint8_t bme688_set_heater_off(bme688_handle_t *handle, bme688_bool_t enable)
enable or disable heater off
uint8_t bme688_parallel_progress(bme688_handle_t *handle)
parallel progress
uint8_t bme688_parallel_reset(bme688_handle_t *handle)
parallel reset
bme688_interface_t
bme688 interface enumeration definition
struct bme688_parallel_data_s bme688_parallel_data_t
bme688 parallel data structure definition
uint8_t bme688_set_humidity_oversampling(bme688_handle_t *handle, bme688_oversampling_t oversampling)
set humidity oversampling
uint8_t bme688_set_pressure_oversampling(bme688_handle_t *handle, bme688_oversampling_t oversampling)
set pressure oversampling
struct bme688_parallel_config_s bme688_parallel_config_t
bme688 parallel config structure definition
struct bme688_handle_s bme688_handle_t
bme688 handle structure definition
@ BME688_MODE_SLEEP
@ BME688_MODE_PARALLEL
@ BME688_BOOL_TRUE
@ BME688_BOOL_FALSE
#define BME688_PARALLEL_DEFAULT_HUMIDITY_OVERSAMPLING
uint8_t bme688_parallel_server(void)
parallel example server
#define BME688_PARALLEL_DEFAULT_SPI_WIRE
uint8_t bme688_parallel_init(bme688_interface_t interface, bme688_address_t addr_pin, bme688_parallel_config_t *config, void(*callback)(uint8_t status, bme688_parallel_data_t *data, uint8_t len))
parallel example init
#define BME688_PARALLEL_DEFAULT_FILTER
uint8_t bme688_parallel_deinit(void)
parallel example deinit
#define BME688_PARALLEL_DEFAULT_PRESSURE_OVERSAMPLING
#define BME688_PARALLEL_DEFAULT_TEMPERATURE_OVERSAMPLING
bme688 parallel example default definition
uint8_t bme688_parallel_server_reset(void)
parallel example server reset
uint8_t bme688_interface_spi_write(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus write
uint8_t bme688_interface_iic_write(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus write
uint8_t bme688_interface_iic_read(uint8_t addr, uint8_t reg, uint8_t *buf, uint16_t len)
interface iic bus read
void bme688_interface_delay_ms(uint32_t ms)
interface delay ms
uint8_t bme688_interface_spi_read(uint8_t reg, uint8_t *buf, uint16_t len)
interface spi bus read
void bme688_interface_debug_print(const char *const fmt,...)
interface print format data
uint8_t bme688_interface_spi_deinit(void)
interface spi bus deinit
uint8_t bme688_interface_spi_init(void)
interface spi bus init
uint8_t bme688_interface_iic_deinit(void)
interface iic bus deinit
uint8_t bme688_interface_iic_init(void)
interface iic bus init