Compare commits

...

5 Commits

5 changed files with 46 additions and 24 deletions

View File

@ -32,8 +32,9 @@ typedef enum
FRT_REGISTER_HUMIDITY = 7, /* 大气湿度 */ FRT_REGISTER_HUMIDITY = 7, /* 大气湿度 */
FRT_REGISTER_PRESSURE = 8, /* 大气压 */ FRT_REGISTER_PRESSURE = 8, /* 大气压 */
FRT_REGISTER_RAIN = 9, /* 雨量 */ FRT_REGISTER_RAIN = 9, /* 雨量 */
FRT_REGISTER_LIGHT_INTENSITY_HIGH = 10, /* 光照强度高位 */ FRT_REGISTER_IRRADIANCE = 10, /* 光辐射 */
FRT_REGISTER_LIGHT_INTENSITY_LOW = 11, /* 光照强度低位 */ // FRT_REGISTER_LIGHT_INTENSITY_HIGH = 10, /* 光照强度高位 */
// FRT_REGISTER_LIGHT_INTENSITY_LOW = 11, /* 光照强度低位 */
FRT_REGISTER_THROUGH_WIND_DIRECTION = 12, /* 极小风向 */ FRT_REGISTER_THROUGH_WIND_DIRECTION = 12, /* 极小风向 */
FRT_REGISTER_INSTANTANEOUS_WIND_DIRECTION = 13, /* 瞬时风向 */ FRT_REGISTER_INSTANTANEOUS_WIND_DIRECTION = 13, /* 瞬时风向 */
FRT_REGISTER_PEAK_WIND_DIRECTION = 14, /* 极大风向 */ FRT_REGISTER_PEAK_WIND_DIRECTION = 14, /* 极大风向 */

View File

@ -1079,6 +1079,7 @@ static void getTempHumiPress(void)
//置错误标志位 //置错误标志位
g_error_log.temp_error_HP203B = 1; g_error_log.temp_error_HP203B = 1;
//错误处理 //错误处理
g_stMcs_Para.pressure = 0;
} }
else else
{ {

View File

@ -32,8 +32,11 @@ static u_int16_t FRT_ReadRegTemperature(void *pMsg);
static u_int16_t FRT_ReadRegHumidity(void *pMsg); static u_int16_t FRT_ReadRegHumidity(void *pMsg);
static u_int16_t FRT_ReadRegPressure(void *pMsg); static u_int16_t FRT_ReadRegPressure(void *pMsg);
static u_int16_t FRT_ReadRegRain(void *pMsg); static u_int16_t FRT_ReadRegRain(void *pMsg);
static u_int16_t FRT_ReadRegLightHigh(void *pMsg);
static u_int16_t FRT_ReadRegLightLow(void *pMsg); static u_int16_t FRT_ReadRegirradiance(void *pMsg);
//static u_int16_t FRT_ReadRegLightHigh(void *pMsg);
//static u_int16_t FRT_ReadRegLightLow(void *pMsg);
/* 读 */ /* 读 */
static u_int16_t FRT_ReadRegDeviceAddr(void *pMsg); static u_int16_t FRT_ReadRegDeviceAddr(void *pMsg);
static u_int16_t FRT_ReadRegCommuBaudRate(void *pMsg); static u_int16_t FRT_ReadRegCommuBaudRate(void *pMsg);
@ -131,8 +134,9 @@ FRT_RegProcTable_s g_RegTbl[] =
{ FRT_REGISTER_HUMIDITY, FRT_ReadRegHumidity }, /* 大气湿度 */ { FRT_REGISTER_HUMIDITY, FRT_ReadRegHumidity }, /* 大气湿度 */
{ FRT_REGISTER_PRESSURE, FRT_ReadRegPressure }, /* 大气压 */ { FRT_REGISTER_PRESSURE, FRT_ReadRegPressure }, /* 大气压 */
{ FRT_REGISTER_RAIN, FRT_ReadRegRain }, /* 雨量 */ { FRT_REGISTER_RAIN, FRT_ReadRegRain }, /* 雨量 */
{ FRT_REGISTER_LIGHT_INTENSITY_HIGH, FRT_ReadRegLightHigh }, /* 光照高位 */ { FRT_REGISTER_IRRADIANCE, FRT_ReadRegirradiance }, /* 光辐射 */
{ FRT_REGISTER_LIGHT_INTENSITY_LOW, FRT_ReadRegLightLow }, /* 光照低位 */ // { FRT_REGISTER_LIGHT_INTENSITY_HIGH, FRT_ReadRegLightHigh }, /* 光照高位 */
// { FRT_REGISTER_LIGHT_INTENSITY_LOW, FRT_ReadRegLightLow }, /* 光照低位 */
{ FRT_REGISTER_DEVICE_ADDR, FRT_ReadRegDeviceAddr }, /* 设备地址 */ { FRT_REGISTER_DEVICE_ADDR, FRT_ReadRegDeviceAddr }, /* 设备地址 */
{ FRT_REGISTER_COMMU_BAUDRATE, FRT_ReadRegCommuBaudRate }, /* 波特率 */ { FRT_REGISTER_COMMU_BAUDRATE, FRT_ReadRegCommuBaudRate }, /* 波特率 */
{ FRT_REGISTER_SPEED_AVERAGE_TIME, FRT_ReadRegSpeedAverageTime }, /* 风速平均时间 */ { FRT_REGISTER_SPEED_AVERAGE_TIME, FRT_ReadRegSpeedAverageTime }, /* 风速平均时间 */
@ -412,26 +416,37 @@ static u_int16_t FRT_ReadRegRain(void *pMsg)
} }
/** /**
* @brief * @brief
* @param * @param
* @retval * @retval
*/ */
static u_int16_t FRT_ReadRegLightHigh(void *pMsg) static u_int16_t FRT_ReadRegirradiance(void *pMsg)
{ {
u_int16_t value=(u_int16_t)(g_stMcs_Para.lightIntensity>>16); u_int16_t value = g_stMcs_Para.lightIntensity/10.0f;
return FRT_swap_endian_16(value); return FRT_swap_endian_16(value);
} }
/** ///**
* @brief // * @brief 读光照高位寄存器值
* @param // * @param
* @retval // * @retval
*/ // */
static u_int16_t FRT_ReadRegLightLow(void *pMsg) //static u_int16_t FRT_ReadRegLightHigh(void *pMsg)
{ //{
u_int16_t value=(u_int16_t)(g_stMcs_Para.lightIntensity); // u_int16_t value=(u_int16_t)(g_stMcs_Para.lightIntensity>>16);
return FRT_swap_endian_16(value); // return FRT_swap_endian_16(value);
} //}
//
///**
// * @brief 读光照低位寄存器值
// * @param
// * @retval
// */
//static u_int16_t FRT_ReadRegLightLow(void *pMsg)
//{
// u_int16_t value=(u_int16_t)(g_stMcs_Para.lightIntensity);
// return FRT_swap_endian_16(value);
//}
/** /**
* @brief * @brief

View File

@ -151,7 +151,7 @@ void MX_FREERTOS_Init(void) {
void StartDefaultTask(void const * argument) void StartDefaultTask(void const * argument)
{ {
/* USER CODE BEGIN StartDefaultTask */ /* USER CODE BEGIN StartDefaultTask */
osDelay(2000); osDelay(5000);
/* Infinite loop */ /* Infinite loop */
for(;;) for(;;)
{ {

View File

@ -178,9 +178,9 @@ static HAL_StatusTypeDef MS56XX_GetPressureTemp(float *Temp, float *Press) //
MS56XX_Temperature=-6000; MS56XX_Temperature=-6000;
return HAL_ERROR; return HAL_ERROR;
} }
if(MS56XX_Temperature>8500) if(MS56XX_Temperature>9000)
{ {
MS56XX_Temperature=8500; MS56XX_Temperature=9000;
return HAL_ERROR; return HAL_ERROR;
} }
if(Tmp_Pressure<1000) if(Tmp_Pressure<1000)
@ -226,11 +226,16 @@ HAL_StatusTypeDef MS56XX_GetPressure(float *Press)
ret_falt++; ret_falt++;
pressure_buff[i] = 0; pressure_buff[i] = 0;
} }
osDelay(15);//转换时间
} }
if(ret_falt >= COLLECT_DATA_NUM) if(ret_falt >= COLLECT_DATA_NUM)
{ {
return HAL_ERROR; return HAL_ERROR;
} }
*Press = calculateAverage( pressure_buff,COLLECT_DATA_NUM - ret_falt); *Press = calculateAverage( pressure_buff,COLLECT_DATA_NUM - ret_falt);
// if(MS56XX_GetPressureTemp(&temp_buff, Press) != HAL_OK)
// {
// return HAL_ERROR;
// }
return HAL_OK; return HAL_OK;
} }