修复了气压传感器错误会将0扔给DSP导致系统重启的问题

This commit is contained in:
95384 2024-12-28 17:00:34 +08:00
parent 0da9b8f2da
commit 17f8b720c5
1 changed files with 19 additions and 5 deletions

View File

@ -95,7 +95,9 @@ BOOL Hp203bReadTempture(float *press)
#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 ret;
uint8_t temp_falt = 0;
uint8_t press_falt = 0;
// ѹǿ // ѹǿ
U_DataType collect_pressure[COLLECT_HB203_DATA_NUM]={0x00}; U_DataType collect_pressure[COLLECT_HB203_DATA_NUM]={0x00};
@ -104,12 +106,18 @@ BOOL get_HP203_data(float* tempdata, float* press)
ret = Hp203bReadPressure(&collect_pressure[i].fValue); ret = Hp203bReadPressure(&collect_pressure[i].fValue);
if(ret == FALSE) if(ret == FALSE)
{ {
goto error_return; press_falt++;
continue;
//goto error_return;
} }
osDelay(1); osDelay(1);
} }
if(press_falt >= COLLECT_HB203_DATA_NUM)
{
goto error_return;
}
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_falt, FILTER_DATA_TYPE_FLOAT);
if(tmp_press.fValue < 300) if(tmp_press.fValue < 300)
{ {
// return FALSE; // return FALSE;
@ -128,12 +136,18 @@ BOOL get_HP203_data(float* tempdata, float* press)
ret = Hp203bReadTempture(&collect_tempture[i].fValue); ret = Hp203bReadTempture(&collect_tempture[i].fValue);
if(ret == FALSE) if(ret == FALSE)
{ {
goto error_return; temp_falt++;
continue;
//goto error_return;
} }
osDelay(1); osDelay(1);
} }
if(temp_falt >= COLLECT_HB203_DATA_NUM)
{
goto error_return;
}
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_falt, FILTER_DATA_TYPE_FLOAT);
if(tmp_tempture.fValue < -50) if(tmp_tempture.fValue < -50)
{ {
// return FALSE; // return FALSE;