Browse Source

SHT sensor work.

Vladimir N. Shilov 3 years ago
parent
commit
c5ca0b78af
1 changed files with 30 additions and 8 deletions
  1. 30 8
      Src/main.c

+ 30 - 8
Src/main.c

@@ -195,12 +195,13 @@ int main(void)
   SensorDev.read = user_i2c_read;
   SensorDev.write = user_i2c_write;
   SensorDev.delay_ms = tdelay_ms;
-  rsltSensor = bme280_init(&SensorDev);
+//  rsltSensor = bme280_init(&SensorDev);
   if (rsltSensor == BME280_OK) {
     Flag.BME280 = 1;
   }
+COLOR_RGB(255, 0, 0);
 
-//  SHT_Init();
+  SHT_Init();
   /* USER CODE END 2 */
 
   /* USER CODE BEGIN WHILE */
@@ -214,8 +215,8 @@ int main(void)
   SensorDev.settings.osr_t = BME280_OVERSAMPLING_2X;
   SensorDev.settings.filter = BME280_FILTER_COEFF_16;
 
-  rsltSensor = bme280_set_sensor_settings((BME280_OSR_PRESS_SEL | BME280_OSR_TEMP_SEL | BME280_OSR_HUM_SEL | BME280_FILTER_SEL), &SensorDev);
-  rsltSensor = bme280_set_sensor_mode(BME280_FORCED_MODE, &SensorDev);
+//  rsltSensor = bme280_set_sensor_settings((BME280_OSR_PRESS_SEL | BME280_OSR_TEMP_SEL | BME280_OSR_HUM_SEL | BME280_FILTER_SEL), &SensorDev);
+//  rsltSensor = bme280_set_sensor_mode(BME280_NORMAL_MODE, &SensorDev);
   //SensorDev.delay_ms(50);
   //rsltSensor = bme280_get_sensor_data(BME280_ALL, &SensorData, &SensorDev);
   /* bme280_get_sensor_data(...) returns:
@@ -233,7 +234,7 @@ int main(void)
     IN15_OFF;
     COLOR_RGB(0, 0, 0);
     RTC_ReadAll(&Clock);
-    //SHT_StartH();
+    SHT_StartH();
     //SHT_StartT();
     tdelay_ms(500);
 
@@ -242,7 +243,7 @@ int main(void)
       IN15_Minus;
     }
     COLOR_RGB(0xFF, 0x12, 0x0); // FF7E00 or FFBF00
-    rsltSensor = bme280_get_sensor_data(BME280_ALL, &SensorData, &SensorDev);
+//    rsltSensor = bme280_get_sensor_data(BME280_ALL, &SensorData, &SensorDev);
     tdelay_ms(500);
     /* USER CODE END WHILE */
 
@@ -253,9 +254,27 @@ int main(void)
     showDigit(Tube_D, Clock.Sec >> 4);
     showDigit(Tube_E, Clock.Sec & 0xf);
 */
-    //Humidity = SHT_GetH();
-    //Temperature = SHT_GetT();
 
+    Humidity = SHT_GetH();
+    hum_h = Humidity / 100;
+    hum_l = Humidity % 100;
+
+    showDigit(Tube_A, hum_h / 10);
+    showDigit(Tube_B, hum_h % 10);
+    showDigit(Tube_D, hum_l / 10);
+    showDigit(Tube_E, hum_l % 10);
+
+/*
+    Temperature = SHT_GetT();
+    temp_h = Temperature / 100;
+    temp_l = Temperature % 100;
+
+    showDigit(Tube_A, temp_h / 10);
+    showDigit(Tube_B, temp_h % 10);
+    showDigit(Tube_D, temp_l / 10);
+    showDigit(Tube_E, temp_l % 10);
+*/
+/*
     if (rsltSensor == BME280_OK) {
       temp_h = (uint8_t)SensorData.temperature / 100;
       temp_l = (uint8_t)SensorData.temperature % 100;
@@ -280,6 +299,7 @@ int main(void)
       showDigit(Tube_D, Clock.Sec >> 4);
       showDigit(Tube_E, Clock.Sec & 0xf);
     }
+*/
     SPI_StartTX();
 
     RTOS_DispatchTask();
@@ -348,6 +368,8 @@ int8_t user_i2c_read(const uint8_t id, const uint8_t reg_addr, uint8_t *data, co
   I2C1->CR1 |= ( I2C_CR1_RXDMAEN );
   I2C1->CR2 |= ( I2C_CR2_START );
 
+  while (Flag.I2C_RX_End == 0) {};
+
   return I2C_RET_OK;
 }