Hello everyone, Currently, I am working with an IoT application on the board Nucleo-WL55JC1 with the sensor BME688. The example I am using is LoRaWAN_End_Node downloaded from STM32Cube MX. What I did: I initialized the the BME688 and set up some configuration after the initialization of MX_LoRaWAN_Init(). I, then, set up some configuration outside the while loop. I "extern"ed the variables below so that I can used them elsewhere: struct bme68x_dev bme;
struct bme68x_conf conf;
struct bme68x_heatr_conf heatr_conf; Order of initialization are below: /* Initialize all configured peripherals */
MX_GPIO_Init();
MX_LoRaWAN_Init();
MX_I2C3_Init();
/* USER CODE BEGIN 2 */
int8_t rslt = bme68x_interface_init(&bme, BME68X_I2C_INTF);
//bme68x_check_rslt("bme68x_interface_init", rslt);
// UART_Transmit_IT("/init\n");
rslt = bme68x_init(&bme);
//Set up the measurement
conf.filter = BME68X_FILTER_OFF;
conf.odr = BME68X_ODR_NONE;
conf.os_hum = BME68X_OS_16X;
conf.os_pres = BME68X_OS_1X;
conf.os_temp = BME68X_OS_2X;
rslt = bme68x_set_conf(&conf, &bme);
heatr_conf.enable = BME68X_ENABLE;
heatr_conf.heatr_temp = 300;
heatr_conf.heatr_dur = 100;
rslt = bme68x_set_heatr_conf(BME68X_SEQUENTIAL_MODE, &heatr_conf, &bme);
rslt = bme68x_set_op_mode(BME68X_SEQUENTIAL_MODE, &bme); For obtaining the temperature/pressure/humidity/gas level, I got the data of the sensor in the function SendTxData in the file lora_app.c: struct bme68x_data data;
uint32_t del_period;
uint8_t n_fields;
#ifdef CAYENNE_LPP
uint8_t channel = 0;
#else
uint16_t pressure = 0;
int16_t temperature = 0;
uint16_t humidity = 0;
uint32_t i = 0;
int32_t latitude = 0;
int32_t longitude = 0;
uint16_t altitudeGps = 0;
#endif /* CAYENNE_LPP */
//EnvSensors_Read(&sensor_data);
del_period = bme68x_get_meas_dur(BME68X_SEQUENTIAL_MODE, &conf, &bme) + (heatr_conf.heatr_dur * 1000);
bme.delay_us(del_period, bme.intf_ptr);
int8_t rslt = bme68x_get_data(BME68X_SEQUENTIAL_MODE, &data, &n_fields, &bme);
float senTemp = data.temperature;
float senPres = data.pressure;
float senHumid = data.humidity; The problem: as in the code, I set the sensor to work in sequential mode, however, the whole setup stopped working after the first measurement. The same thing happened when I set the sensor to work in parallel mode. Sleep mode worked okay and for Forced mode, I could achieve the first measurement before the sensor turned to sleep mode (correct). (the end device started the first measurement and stopped at that point). Question: Where should I start tracking the problem or how do I fix this problem? I hope to have responses from you. Thank you very much, Huy Nguyen.
... View more