02-23-2021 10:12 AM
Dear all,
I have integrated the "BSEC_1.4.8.0_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:
STM32L462RE
toolchain: SysGcc, GCC 7.2.0, GDB 8.0.1 revision 3
software: BSEC_1.4.8.0_Generic_Release
integrated lib: BSEC_1.4.8.0_Generic_Release/algo/normal_version/bin/gcc/Cortex_M4F/libalgobsec.a
integrated software samples (as is, unchanged!)
BSEC_1.4.8.0_Generic_Release/examples/bsec_iot_example.c
BSEC_1.4.8.0_Generic_Release/examples/bsec_iot_example/bme680.c
BSEC_1.4.8.0_Generic_Release/examples/bsec_iot_example/bsec_integration.c
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:
state_load, state_save.
Any help to resolve this issue is much appreciated.
Thanks
Solved! Go to Solution.
02-24-2021 08:21 AM
Thanks for your reply.
Yes, the returned value of "bsec_iot_init" is 0.
int bsecBm680Main()
{
return_values_init ret;
/* 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);
if (ret.bme680_status)
{
/* Could not intialize BME680 */
return (int)ret.bme680_status;
}
else if (ret.bsec_status)
{
/* Could not intialize BSEC library */
return (int)ret.bsec_status;
}
/* 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);
return 0;
}
02-26-2021 02:39 AM
Hello mhammer3,
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.
02-26-2021 07:40 PM
Thanks BSTRobin, will try and let you know.