大气压传感器采集逻辑修改,修复了采集失败算出平均值减小
This commit is contained in:
parent
c63e035ef2
commit
f6e99f4d9b
|
@ -26,9 +26,8 @@ void hp203_set_mode()
|
||||||
*
|
*
|
||||||
*返回:气压
|
*返回:气压
|
||||||
*****************************/
|
*****************************/
|
||||||
float Hp203bReadPressure(void)
|
BOOL Hp203bReadPressure(float *press)
|
||||||
{
|
{
|
||||||
float ret = 0.0;
|
|
||||||
long Hp203b_Pressure = 0;
|
long Hp203b_Pressure = 0;
|
||||||
uint8_t Hp203bPressure_Temp[3] = {0};
|
uint8_t Hp203bPressure_Temp[3] = {0};
|
||||||
uint8_t read_command[1] = {HP20X_READ_P};
|
uint8_t read_command[1] = {HP20X_READ_P};
|
||||||
|
@ -43,8 +42,10 @@ float Hp203bReadPressure(void)
|
||||||
Hp203b_Pressure |= Hp203bPressure_Temp[2];
|
Hp203b_Pressure |= Hp203bPressure_Temp[2];
|
||||||
|
|
||||||
Hp203b_Pressure = Hp203b_Pressure / 100;
|
Hp203b_Pressure = Hp203b_Pressure / 100;
|
||||||
ret = Hp203b_Pressure;
|
if(Hp203b_Pressure<300||Hp203b_Pressure>1200)
|
||||||
return ret;
|
return FALSE;
|
||||||
|
*press = Hp203b_Pressure;
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************
|
/****************************
|
||||||
|
@ -55,9 +56,8 @@ float Hp203bReadPressure(void)
|
||||||
*
|
*
|
||||||
*返回:温度
|
*返回:温度
|
||||||
*****************************/
|
*****************************/
|
||||||
float Hp203bReadTempture(void)
|
BOOL Hp203bReadTempture(float *press)
|
||||||
{
|
{
|
||||||
float ret = 0.0;
|
|
||||||
long Hp203b_tempture = 0;
|
long Hp203b_tempture = 0;
|
||||||
uint8_t Hp203bPressure_Temp[3] = {0};
|
uint8_t Hp203bPressure_Temp[3] = {0};
|
||||||
uint8_t read_command[1] = {0x32};
|
uint8_t read_command[1] = {0x32};
|
||||||
|
@ -72,8 +72,8 @@ float Hp203bReadTempture(void)
|
||||||
Hp203b_tempture |= Hp203bPressure_Temp[2];
|
Hp203b_tempture |= Hp203bPressure_Temp[2];
|
||||||
|
|
||||||
Hp203b_tempture = Hp203b_tempture / 100;
|
Hp203b_tempture = Hp203b_tempture / 100;
|
||||||
ret = Hp203b_tempture;
|
*press = Hp203b_tempture;
|
||||||
return ret;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************
|
/****************************
|
||||||
|
@ -87,15 +87,21 @@ float Hp203bReadTempture(void)
|
||||||
#define COLLECT_HB203_DATA_NUM 10
|
#define COLLECT_HB203_DATA_NUM 10
|
||||||
BOOL get_HP203_data(float* tempdata, float* press)
|
BOOL get_HP203_data(float* tempdata, float* press)
|
||||||
{
|
{
|
||||||
|
int ret;
|
||||||
|
uint8_t temp_error_time, press_error_time = 0;
|
||||||
// 压强
|
// 压强
|
||||||
U_DataType collect_pressure[COLLECT_HB203_DATA_NUM]={0x00};
|
U_DataType collect_pressure[COLLECT_HB203_DATA_NUM]={0x00};
|
||||||
|
|
||||||
for(int i=0; i<COLLECT_HB203_DATA_NUM; i++){
|
for(int i=0; i<COLLECT_HB203_DATA_NUM; i++){
|
||||||
collect_pressure[i].fValue = Hp203bReadPressure();
|
ret = Hp203bReadPressure(&collect_pressure[i].fValue);
|
||||||
|
if(ret == FALSE)
|
||||||
|
{
|
||||||
|
press_error_time++;
|
||||||
|
}
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
U_DataType tmp_press = filter_middle(collect_pressure, COLLECT_HB203_DATA_NUM, FILTER_DATA_TYPE_FLOAT);
|
U_DataType tmp_press = filter_middle(collect_pressure, COLLECT_HB203_DATA_NUM - press_error_time, FILTER_DATA_TYPE_FLOAT);
|
||||||
if(tmp_press.fValue < 300)
|
if(tmp_press.fValue < 300)
|
||||||
{
|
{
|
||||||
tmp_press.fValue = 300;
|
tmp_press.fValue = 300;
|
||||||
|
@ -112,11 +118,15 @@ BOOL get_HP203_data(float* tempdata, float* press)
|
||||||
U_DataType collect_tempture[COLLECT_HB203_DATA_NUM]={0x00};
|
U_DataType collect_tempture[COLLECT_HB203_DATA_NUM]={0x00};
|
||||||
|
|
||||||
for(int i=0; i<COLLECT_HB203_DATA_NUM; i++){
|
for(int i=0; i<COLLECT_HB203_DATA_NUM; i++){
|
||||||
collect_tempture[i].fValue = Hp203bReadTempture();
|
ret = Hp203bReadTempture(&collect_tempture[i].fValue);
|
||||||
|
if(ret == FALSE)
|
||||||
|
{
|
||||||
|
temp_error_time++;
|
||||||
|
}
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
U_DataType tmp_tempture = filter_middle(collect_tempture, COLLECT_HB203_DATA_NUM, FILTER_DATA_TYPE_FLOAT);
|
U_DataType tmp_tempture = filter_middle(collect_tempture, COLLECT_HB203_DATA_NUM - temp_error_time, FILTER_DATA_TYPE_FLOAT);
|
||||||
if(tmp_tempture.fValue < -40)
|
if(tmp_tempture.fValue < -40)
|
||||||
{
|
{
|
||||||
tmp_tempture.fValue = -40;
|
tmp_tempture.fValue = -40;
|
||||||
|
|
|
@ -148,28 +148,28 @@ BOOL get_temp_humi_data(float* temdata, float* humidata)
|
||||||
// AssertError((tmp_humidata.fValue >= 0) && (tmp_humidata.fValue <= 100), return FALSE, "sht30ʪ¶ÈֵУÑéʧ°Ü");
|
// AssertError((tmp_humidata.fValue >= 0) && (tmp_humidata.fValue <= 100), return FALSE, "sht30ʪ¶ÈֵУÑéʧ°Ü");
|
||||||
if(tmp_temdata.fValue < -40)
|
if(tmp_temdata.fValue < -40)
|
||||||
{
|
{
|
||||||
tmp_temdata.fValue = -40;
|
// tmp_temdata.fValue = -40;
|
||||||
// term_printf("sht30ζÈֵУÑéʧ°Ü");
|
// term_printf("sht30ζÈֵУÑéʧ°Ü");
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
if(tmp_temdata.fValue > 125)
|
if(tmp_temdata.fValue > 125)
|
||||||
{
|
{
|
||||||
tmp_temdata.fValue = 125;
|
// tmp_temdata.fValue = 125;
|
||||||
// term_printf("sht30ζÈֵУÑéʧ°Ü");
|
// term_printf("sht30ζÈֵУÑéʧ°Ü");
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
if(tmp_humidata.fValue < 0)
|
if(tmp_humidata.fValue < 0)
|
||||||
{
|
{
|
||||||
tmp_humidata.fValue = 0;
|
// tmp_humidata.fValue = 0;
|
||||||
// term_printf("sht30ʪ¶ÈֵУÑéʧ°Ü");
|
// term_printf("sht30ʪ¶ÈֵУÑéʧ°Ü");
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
if(tmp_humidata.fValue > 100)
|
if(tmp_humidata.fValue > 100)
|
||||||
{
|
{
|
||||||
tmp_humidata.fValue = 100;
|
// tmp_humidata.fValue = 100;
|
||||||
// term_printf("sht3ʪ¶ÈֵУÑéʧ°Ü");
|
// term_printf("sht3ʪ¶ÈֵУÑéʧ°Ü");
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
|
|
|
@ -701,7 +701,7 @@
|
||||||
<data>
|
<data>
|
||||||
<extensions></extensions>
|
<extensions></extensions>
|
||||||
<cmdline></cmdline>
|
<cmdline></cmdline>
|
||||||
<hasPrio>1</hasPrio>
|
<hasPrio>80</hasPrio>
|
||||||
<buildSequence>inputOutputBased</buildSequence>
|
<buildSequence>inputOutputBased</buildSequence>
|
||||||
</data>
|
</data>
|
||||||
</settings>
|
</settings>
|
||||||
|
|
Loading…
Reference in New Issue