I have integrated the "BSEC_126.96.36.199_Generic_Release" into my application to operate the BME680 based on "BME680 shuttle board" over I2C (SD0 set to GROUND).
The result is: the callback function of "output_ready" produces only 0.0s, even after 10 mins of operation:
730703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
733703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
736703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
739703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
742703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
The setup is:
toolchain: SysGcc, GCC 7.2.0, GDB 8.0.1 revision 3
integrated lib: BSEC_188.8.131.52_Generic_Release/algo/normal_version/bin/gcc/Cortex_M4F/libalgobsec.a
integrated software samples (as is, unchanged!)
callback functions I have populated:
bus_read, bus_write, sleep (in ms), get_timestamp_us (in us), output_ready
callback functions I have left empty:
Any help to resolve this issue is much appreciated.
Solved! Go to Solution.
Thanks for your reply.
Yes, the returned value of "bsec_iot_init" is 0.
/* Call to the function which initializes the BSEC library
* Switch on low-power mode and provide no temperature offset */
ret = bsec_iot_init(BSEC_SAMPLE_RATE_LP, 0.0f, bus_write, bus_read, sleep, state_load, config_load);
/* Could not intialize BME680 */
else if (ret.bsec_status)
/* Could not intialize BSEC library */
/* Call to endless loop function which reads and processes data based on sensor settings */
/* State is saved every 10.000 samples, which means every 10.000 * 3 secs = 500 minutes */
bsec_iot_loop(sleep, get_timestamp_us, output_ready, state_save, 10000);
I setup SW environment on STM32 and run bsec_iot_example.c. I found that the my code couldn't output the correct BSEC result at first. After I check code in example, the stack size of the system should be increased, otherwise the example code will not work properly.
Attachment is my code, you could refer them.