Compare commits
No commits in common. "83a9a79dcdf74a18bc486b8ab54f9569e38dc9ff" and "afe80d069530e3dfea8c3e4aa079394fd340b6d4" have entirely different histories.
83a9a79dcd
...
afe80d0695
|
@ -35,12 +35,8 @@
|
||||||
#define DRIVE_FREQ_MHz ((float32_t)0.2)
|
#define DRIVE_FREQ_MHz ((float32_t)0.2)
|
||||||
|
|
||||||
// 驱动方波个数 实际个数 DRIVE_NUM+1
|
// 驱动方波个数 实际个数 DRIVE_NUM+1
|
||||||
#define DRIVE_NUM 2
|
|
||||||
|
|
||||||
// 温度探头版本,SHT30=1,TMP117=2
|
#define DRIVE_NUM 2
|
||||||
#define SHT30_SENSOR 1
|
|
||||||
#define TMP117_SENSOR 2
|
|
||||||
#define TEMP_SENSOR TMP117_SENSOR
|
|
||||||
|
|
||||||
|
|
||||||
///已将DISTANCE写入配置文件,在结构体g_stConfigInfo.transducer_distace中
|
///已将DISTANCE写入配置文件,在结构体g_stConfigInfo.transducer_distace中
|
||||||
|
@ -144,7 +140,7 @@ typedef struct _error_log{
|
||||||
uint16_t tof_error_WE:1; /* 接受东西信号(tofy,tofx<0)很小 */
|
uint16_t tof_error_WE:1; /* 接受东西信号(tofy,tofx<0)很小 */
|
||||||
uint16_t temp_error_SHT30:1; /* SHT30错误日志(温湿度) */
|
uint16_t temp_error_SHT30:1; /* SHT30错误日志(温湿度) */
|
||||||
uint16_t temp_error_HP203B:1; /* HP203B错误日志(大气压) */
|
uint16_t temp_error_HP203B:1; /* HP203B错误日志(大气压) */
|
||||||
uint16_t temp_error_TMP117:1; /* TMP117错误日志(温度) */
|
uint16_t error_4:1; /* 保留 */
|
||||||
uint16_t error_5:1; /* 保留 */
|
uint16_t error_5:1; /* 保留 */
|
||||||
uint16_t error_6:1; /* 保留 */
|
uint16_t error_6:1; /* 保留 */
|
||||||
uint16_t error_7:1; /* 保留 */
|
uint16_t error_7:1; /* 保留 */
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
#include "fdacoefs.h"
|
#include "fdacoefs.h"
|
||||||
#include "sht30.h"
|
#include "sht30.h"
|
||||||
#include "hp203b.h"
|
#include "hp203b.h"
|
||||||
#include "tmp117.h"
|
|
||||||
#include "FIR.h"
|
#include "FIR.h"
|
||||||
#include "LowPassFilter.h"
|
#include "LowPassFilter.h"
|
||||||
#include "encrypt.h"
|
#include "encrypt.h"
|
||||||
|
@ -1064,76 +1063,35 @@ void my_update_mcs_param(float new_wind_speed, float new_wind_dirction)
|
||||||
win_10min.index = (win_10min.index + 1) % g_usrConfigInfo.speed_average_time;//更新索引
|
win_10min.index = (win_10min.index + 1) % g_usrConfigInfo.speed_average_time;//更新索引
|
||||||
}
|
}
|
||||||
|
|
||||||
//采集温度,湿度,大气压
|
|
||||||
static void getTempHumiPress(void)
|
|
||||||
{
|
|
||||||
//采集备用温度与大气压
|
|
||||||
float backupTemperature1;
|
|
||||||
float backupTemperature2;
|
|
||||||
uint8_t hp203_ret = get_HP203_data(&backupTemperature1, &g_stMcs_Para.pressure);
|
|
||||||
uint8_t sht30_ret = get_temp_humi_data(&backupTemperature2, &g_stMcs_Para.humidity);
|
|
||||||
#if TEMP_SENSOR == SHT30_SENSOR
|
|
||||||
g_stMcs_Para.temperature = backupTemperature2;
|
|
||||||
#endif /*TEMP_SENSOR == SHT30_SENSOR*/
|
|
||||||
|
|
||||||
#if TEMP_SENSOR == TMP117_SENSOR
|
|
||||||
uint8_t tmp117_ret = TMP117_Get_Temp(&g_stMcs_Para.temperature);
|
|
||||||
|
|
||||||
// TMP117出问题
|
|
||||||
if(tmp117_ret != HAL_OK)
|
|
||||||
{
|
|
||||||
//置错误标志位
|
|
||||||
g_error_log.temp_error_TMP117 = 1;
|
|
||||||
//使用备用温度
|
|
||||||
g_stMcs_Para.temperature = backupTemperature1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//恢复错误标志位
|
|
||||||
g_error_log.temp_error_TMP117 = 0;
|
|
||||||
}
|
|
||||||
#endif /*TEMP_SENSOR == TMP117_SENSOR*/
|
|
||||||
|
|
||||||
// SHT30出问题
|
|
||||||
if(sht30_ret == FALSE)
|
|
||||||
{
|
|
||||||
//置错误标志位
|
|
||||||
g_error_log.temp_error_SHT30 = 1;
|
|
||||||
//错误处理
|
|
||||||
#if TEMP_SENSOR == SHT30_SENSOR
|
|
||||||
g_stMcs_Para.temperature = backupTemperature1;
|
|
||||||
#endif /*TEMP_SENSOR == SHT30_SENSOR*/
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//恢复错误标志位
|
|
||||||
g_error_log.temp_error_SHT30 = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//HP203B出问题
|
|
||||||
if(hp203_ret == FALSE)
|
|
||||||
{
|
|
||||||
//置错误标志位
|
|
||||||
g_error_log.temp_error_HP203B = 1;
|
|
||||||
//错误处理
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//恢复错误标志位
|
|
||||||
g_error_log.temp_error_HP203B = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void tem_hum_update_task(void const * argument)
|
void tem_hum_update_task(void const * argument)
|
||||||
{
|
{
|
||||||
uint8_t tem_hun_check_flag = JudgeEncrypt();
|
uint8_t tem_hun_check_flag = JudgeEncrypt();
|
||||||
|
|
||||||
uint16_t time_s_temp_humi = 0;//1秒计时,温湿度更新
|
uint16_t time_s_temp_humi = 0;//1秒计时,温湿度更新
|
||||||
|
|
||||||
|
float backupTemperature;
|
||||||
|
uint8_t hp203_ret;
|
||||||
|
uint8_t sht30_ret;
|
||||||
// 开机先采集一次大气压温湿度
|
// 开机先采集一次大气压温湿度
|
||||||
if(tem_hun_check_flag)
|
if(tem_hun_check_flag)
|
||||||
{
|
{
|
||||||
//采集温湿度与大气压
|
uint8_t hp203_ret = get_HP203_data(&backupTemperature, &g_stMcs_Para.pressure);
|
||||||
getTempHumiPress();
|
uint8_t sht30_ret = get_temp_humi_data(&g_stMcs_Para.temperature, &g_stMcs_Para.humidity);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 采集HP203B传感器数据(大气压)
|
||||||
|
if(hp203_ret == FALSE)
|
||||||
|
{
|
||||||
|
g_error_log.temp_error_HP203B = 1;
|
||||||
|
/// 错误处理
|
||||||
|
}
|
||||||
|
// 采集SHT30传感器数据(温湿度)
|
||||||
|
if(sht30_ret == FALSE)
|
||||||
|
{
|
||||||
|
g_error_log.temp_error_SHT30 = 1;
|
||||||
|
/// 错误处理
|
||||||
|
g_stMcs_Para.temperature = backupTemperature;
|
||||||
}
|
}
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
|
@ -1144,7 +1102,31 @@ void tem_hum_update_task(void const * argument)
|
||||||
// 温湿度大气压更新
|
// 温湿度大气压更新
|
||||||
if (time_s_temp_humi >= g_usrConfigInfo.temp_hum_update_time)
|
if (time_s_temp_humi >= g_usrConfigInfo.temp_hum_update_time)
|
||||||
{
|
{
|
||||||
getTempHumiPress();
|
hp203_ret = get_HP203_data(&backupTemperature, &g_stMcs_Para.pressure);
|
||||||
|
sht30_ret = get_temp_humi_data(&g_stMcs_Para.temperature, &g_stMcs_Para.humidity);
|
||||||
|
// 采集HP203B传感器数据(大气压)
|
||||||
|
if(hp203_ret == FALSE)
|
||||||
|
{
|
||||||
|
g_error_log.temp_error_HP203B = 1;
|
||||||
|
/// 错误处理
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 没出问题清除错误日志
|
||||||
|
g_error_log.temp_error_HP203B = 0;
|
||||||
|
}
|
||||||
|
// 采集SHT30传感器数据(温湿度)
|
||||||
|
if(sht30_ret == FALSE)
|
||||||
|
{
|
||||||
|
g_error_log.temp_error_SHT30 = 1;
|
||||||
|
/// 错误处理
|
||||||
|
g_stMcs_Para.temperature = backupTemperature;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 没出问题清除错误日志
|
||||||
|
g_error_log.temp_error_SHT30 = 0;
|
||||||
|
}
|
||||||
// 计时重置
|
// 计时重置
|
||||||
time_s_temp_humi = 0;
|
time_s_temp_humi = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,8 @@ 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_ReadRegPrecipitationIntensity(void *pMsg);
|
|
||||||
static u_int16_t FRT_ReadRegUVIntensity(void *pMsg);
|
|
||||||
/* 读 */
|
/* 读 */
|
||||||
|
static u_int16_t FRT_ReadRegPrecipitationIntensity(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);
|
||||||
static u_int16_t FRT_ReadRegSpeedAverageTime(void *pMsg);
|
static u_int16_t FRT_ReadRegSpeedAverageTime(void *pMsg);
|
||||||
|
@ -127,8 +126,6 @@ FRT_RegProcTable_s g_RegTbl[] =
|
||||||
{ FRT_REGISTER_PRESSURE, FRT_ReadRegPressure }, /* 大气压 */
|
{ FRT_REGISTER_PRESSURE, FRT_ReadRegPressure }, /* 大气压 */
|
||||||
{ FRT_REGISTER_RAIN, FRT_ReadRegRain }, /* 雨量 */
|
{ FRT_REGISTER_RAIN, FRT_ReadRegRain }, /* 雨量 */
|
||||||
{ FRT_REGISTER_PRECIPITATION_INTENSITY, FRT_ReadRegPrecipitationIntensity }, /* 总辐射 */
|
{ FRT_REGISTER_PRECIPITATION_INTENSITY, FRT_ReadRegPrecipitationIntensity }, /* 总辐射 */
|
||||||
{ FRT_REGISTER_UV_INTENSITY, FRT_ReadRegUVIntensity }, /* 紫外强度 */
|
|
||||||
|
|
||||||
{ 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 }, /* 风速平均时间 */
|
||||||
|
@ -399,7 +396,7 @@ static u_int16_t FRT_ReadRegPressure(void *pMsg)
|
||||||
*/
|
*/
|
||||||
static u_int16_t FRT_ReadRegRain(void *pMsg)
|
static u_int16_t FRT_ReadRegRain(void *pMsg)
|
||||||
{
|
{
|
||||||
u_int16_t value=0;
|
u_int16_t value=9;
|
||||||
return FRT_swap_endian_16(value);
|
return FRT_swap_endian_16(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,18 +407,7 @@ static u_int16_t FRT_ReadRegRain(void *pMsg)
|
||||||
*/
|
*/
|
||||||
static u_int16_t FRT_ReadRegPrecipitationIntensity(void *pMsg)
|
static u_int16_t FRT_ReadRegPrecipitationIntensity(void *pMsg)
|
||||||
{
|
{
|
||||||
u_int16_t value=0;
|
u_int16_t value=10;
|
||||||
return FRT_swap_endian_16(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief 读紫外强度寄存器值
|
|
||||||
* @param
|
|
||||||
* @retval
|
|
||||||
*/
|
|
||||||
static u_int16_t FRT_ReadRegUVIntensity(void *pMsg)
|
|
||||||
{
|
|
||||||
u_int16_t value=0;
|
|
||||||
return FRT_swap_endian_16(value);
|
return FRT_swap_endian_16(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1312,7 +1298,7 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
|
||||||
u_int16_t reg_num= (data[4] << 8)| data[5];
|
u_int16_t reg_num= (data[4] << 8)| data[5];
|
||||||
if ( \
|
if ( \
|
||||||
start_reg_addr < 0x00 ||\
|
start_reg_addr < 0x00 ||\
|
||||||
/* (start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_THROUGH_WIND_DIRECTION) ||\ */
|
(start_reg_addr > FRT_REGISTER_PRESSURE && start_reg_addr < FRT_REGISTER_THROUGH_WIND_DIRECTION) ||\
|
||||||
(start_reg_addr > FRT_REGISTER_PEAK_WIND_SPEED && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\
|
(start_reg_addr > FRT_REGISTER_PEAK_WIND_SPEED && start_reg_addr < FRT_REGISTER_DEVICE_ADDR) ||\
|
||||||
(start_reg_addr > FRT_REGISTER_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
(start_reg_addr > FRT_REGISTER_TEMPHUM_UPDATE_TIME && start_reg_addr < FRT_REGISTER_TRANSDUCER_CFG_1R5) ||\
|
||||||
start_reg_addr > FRT_REGISTER_ID_4 \
|
start_reg_addr > FRT_REGISTER_ID_4 \
|
||||||
|
@ -1325,7 +1311,7 @@ void FRT_MsgProc_ReadRegister(device_handle device, void *pMsg)
|
||||||
|
|
||||||
if ( \
|
if ( \
|
||||||
reg_num < 0x01 ||\
|
reg_num < 0x01 ||\
|
||||||
/* (((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_THROUGH_WIND_DIRECTION)) ||\ */
|
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PRESSURE) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_THROUGH_WIND_DIRECTION)) ||\
|
||||||
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PEAK_WIND_SPEED) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\
|
(((reg_num + start_reg_addr - 1) > FRT_REGISTER_PEAK_WIND_SPEED) && ((reg_num + start_reg_addr - 1) < FRT_REGISTER_DEVICE_ADDR)) ||\
|
||||||
(((reg_num + start_reg_addr -1) > FRT_REGISTER_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
(((reg_num + start_reg_addr -1) > FRT_REGISTER_TEMPHUM_UPDATE_TIME) && ((reg_num + start_reg_addr -1) < FRT_REGISTER_TRANSDUCER_CFG_1R5)) ||\
|
||||||
((reg_num + start_reg_addr -1) > FRT_REGISTER_ID_4) \
|
((reg_num + start_reg_addr -1) > FRT_REGISTER_ID_4) \
|
||||||
|
|
|
@ -32,7 +32,6 @@ void task_shell_term_main_loop(void const * argument);
|
||||||
#include "frt_protocol.h"
|
#include "frt_protocol.h"
|
||||||
#include "inflash.h"
|
#include "inflash.h"
|
||||||
#include "hp203b.h"
|
#include "hp203b.h"
|
||||||
#include "tmp117.h"
|
|
||||||
#include "encrypt.h"
|
#include "encrypt.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
|
||||||
|
@ -202,7 +201,7 @@ void LEDTask(void const * argument)
|
||||||
time_s_1Hour ++;
|
time_s_1Hour ++;
|
||||||
if(LED_Check_flag)
|
if(LED_Check_flag)
|
||||||
{
|
{
|
||||||
HAL_GPIO_TogglePin(GPIOC,GPIO_LED_CTRL_Pin);
|
HAL_GPIO_TogglePin(GPIOC,GPIO_LED_CTRL_Pin);
|
||||||
// 一天重启
|
// 一天重启
|
||||||
if (time_s_1Hour >= 3600)
|
if (time_s_1Hour >= 3600)
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,7 +43,6 @@
|
||||||
#include "uart_dev.h"
|
#include "uart_dev.h"
|
||||||
#include "sht30.h"
|
#include "sht30.h"
|
||||||
#include "hp203b.h"
|
#include "hp203b.h"
|
||||||
#include "tmp117.h"
|
|
||||||
|
|
||||||
#include "inflash.h"
|
#include "inflash.h"
|
||||||
/* USER CODE END Includes */
|
/* USER CODE END Includes */
|
||||||
|
@ -173,7 +172,6 @@ void Flash_EnableReadProtection(void)
|
||||||
term_printf("Version 1.0.0 Build: %s %s\r\n",__DATE__,__TIME__);
|
term_printf("Version 1.0.0 Build: %s %s\r\n",__DATE__,__TIME__);
|
||||||
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
|
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
|
||||||
sht30_init();
|
sht30_init();
|
||||||
TMP117_Init();
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
/* Call init function for freertos objects (in cmsis_os2.c) */
|
/* Call init function for freertos objects (in cmsis_os2.c) */
|
||||||
|
|
|
@ -84,18 +84,6 @@ BOOL Hp203bReadTempture(float *press)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static float calculateAverage(float arr[], int avgLength) {
|
|
||||||
float sum = 0;
|
|
||||||
|
|
||||||
// 遍历数组(最多10个元素),收集非零值直到达到指定数量
|
|
||||||
for (int i = 0; i < 10; ++i) {
|
|
||||||
sum += arr[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 计算平均值并限制最大值
|
|
||||||
float average = sum / avgLength;
|
|
||||||
return average;
|
|
||||||
}
|
|
||||||
/****************************
|
/****************************
|
||||||
*名称:get_press_data
|
*名称:get_press_data
|
||||||
*功能:获取气压与备用温度数据
|
*功能:获取气压与备用温度数据
|
||||||
|
@ -111,12 +99,12 @@ BOOL get_HP203_data(float* tempdata, float* press)
|
||||||
uint8_t temp_falt = 0;
|
uint8_t temp_falt = 0;
|
||||||
uint8_t press_falt = 0;
|
uint8_t press_falt = 0;
|
||||||
// 压强
|
// 压强
|
||||||
float 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++){
|
||||||
hp203_set_mode();
|
hp203_set_mode();
|
||||||
osDelay(5);
|
osDelay(5);
|
||||||
ret = Hp203bReadPressure(&collect_pressure[i]);
|
ret = Hp203bReadPressure(&collect_pressure[i].fValue);
|
||||||
if(ret == FALSE)
|
if(ret == FALSE)
|
||||||
{
|
{
|
||||||
press_falt++;
|
press_falt++;
|
||||||
|
@ -129,25 +117,25 @@ BOOL get_HP203_data(float* tempdata, float* press)
|
||||||
{
|
{
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
//求平均
|
|
||||||
float tmp_press = calculateAverage(collect_pressure, COLLECT_HB203_DATA_NUM - press_falt);
|
U_DataType tmp_press = filter_middle(collect_pressure, COLLECT_HB203_DATA_NUM - press_falt, FILTER_DATA_TYPE_FLOAT);
|
||||||
if(tmp_press < 300)
|
if(tmp_press.fValue < 300)
|
||||||
{
|
{
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
if(tmp_press > 1200)
|
if(tmp_press.fValue > 1200)
|
||||||
{
|
{
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
// 温度
|
// 温度
|
||||||
float 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++){
|
||||||
hp203_set_mode();
|
hp203_set_mode();
|
||||||
osDelay(5);
|
osDelay(5);
|
||||||
ret = Hp203bReadTempture(&collect_tempture[i]);
|
ret = Hp203bReadTempture(&collect_tempture[i].fValue);
|
||||||
if(ret == FALSE)
|
if(ret == FALSE)
|
||||||
{
|
{
|
||||||
temp_falt++;
|
temp_falt++;
|
||||||
|
@ -160,21 +148,21 @@ BOOL get_HP203_data(float* tempdata, float* press)
|
||||||
{
|
{
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
//求平均
|
|
||||||
float tmp_tempture = calculateAverage(collect_tempture, COLLECT_HB203_DATA_NUM - temp_falt);
|
U_DataType tmp_tempture = filter_middle(collect_tempture, COLLECT_HB203_DATA_NUM - temp_falt, FILTER_DATA_TYPE_FLOAT);
|
||||||
if(tmp_tempture < -50)
|
if(tmp_tempture.fValue < -50)
|
||||||
{
|
{
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
if(tmp_tempture > 95)
|
if(tmp_tempture.fValue > 95)
|
||||||
{
|
{
|
||||||
// return FALSE;
|
// return FALSE;
|
||||||
goto error_return;
|
goto error_return;
|
||||||
}
|
}
|
||||||
|
|
||||||
*tempdata = tmp_tempture;
|
*tempdata = tmp_tempture.fValue;
|
||||||
*press = tmp_press;
|
*press = tmp_press.fValue;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
error_return:
|
error_return:
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
#include "tmp117.h"
|
|
||||||
#include "i2c.h"
|
|
||||||
|
|
||||||
|
|
||||||
// 初始化温度传感器(连续转换模式,64次平均)
|
|
||||||
HAL_StatusTypeDef TMP117_Init(void)
|
|
||||||
{
|
|
||||||
// 配置值:连续转换模式 + AVG=64 (0x00A0)
|
|
||||||
uint8_t config_data[2] = {0x00, 0xA0}; // 高字节在前
|
|
||||||
return HAL_I2C_Mem_Write(&hi2c1, TMP117_ADDR << 1, TMP117_CONFIG_REG,
|
|
||||||
I2C_MEMADD_SIZE_8BIT, config_data, 2, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 从寄存器读取双字节数据
|
|
||||||
HAL_StatusTypeDef TMP117_Read(uint8_t reg, uint8_t *buffer) {
|
|
||||||
return HAL_I2C_Mem_Read(&hi2c1, TMP117_ADDR << 1, reg,
|
|
||||||
I2C_MEMADD_SIZE_8BIT, buffer, 2, 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取温度值(单位:℃)
|
|
||||||
HAL_StatusTypeDef TMP117_Get_Temp(float *temp)
|
|
||||||
{
|
|
||||||
uint8_t raw_data[2] = {0};
|
|
||||||
int16_t temp_raw;
|
|
||||||
|
|
||||||
if (HAL_OK == TMP117_Read(TMP117_TEMP_REG, raw_data)) {
|
|
||||||
temp_raw = (raw_data[0] << 8) | raw_data[1];
|
|
||||||
*temp = temp_raw * 0.0078125f;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*temp = 0;
|
|
||||||
return HAL_ERROR;
|
|
||||||
}
|
|
||||||
if(*temp <= -60)
|
|
||||||
{
|
|
||||||
*temp = -60;
|
|
||||||
}
|
|
||||||
if(*temp >= 150)
|
|
||||||
{
|
|
||||||
*temp = 150;
|
|
||||||
}
|
|
||||||
return HAL_OK;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
#ifndef __TMP117_H_
|
|
||||||
#define __TMP117_H_
|
|
||||||
|
|
||||||
#include "comm_types.h"
|
|
||||||
#include "main.h"
|
|
||||||
|
|
||||||
#define TMP117_ADDR 0x48 //A0接GND
|
|
||||||
//#define TMP117_ADDR 0x49 //A0接V+
|
|
||||||
//#define TMP117_ADDR 0x4A //A0接SDA
|
|
||||||
//#define TMP117_ADDR 0x4B //A0接SCL
|
|
||||||
|
|
||||||
#define TMP117_TEMP_REG 0x00 //温度寄存器
|
|
||||||
#define TMP117_CONFIG_REG 0x01 //配置寄存器
|
|
||||||
#define TMP117_TLOW_REG 0x02 //温度高报警寄存器
|
|
||||||
#define TMP117_THIGH_REG 0x03 //温度低报警寄存器
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HAL_StatusTypeDef TMP117_Init(void);
|
|
||||||
HAL_StatusTypeDef TMP117_Read(uint8_t reg, uint8_t *buffer);
|
|
||||||
HAL_StatusTypeDef TMP117_Get_Temp(float *temp);
|
|
||||||
|
|
||||||
#endif __TMP117_H_
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -374,7 +374,6 @@
|
||||||
<state>$PROJ_DIR$\..\tools</state>
|
<state>$PROJ_DIR$\..\tools</state>
|
||||||
<state>$PROJ_DIR$\..\App\Inc</state>
|
<state>$PROJ_DIR$\..\App\Inc</state>
|
||||||
<state>$PROJ_DIR$\..\Drivers\HP203B</state>
|
<state>$PROJ_DIR$\..\Drivers\HP203B</state>
|
||||||
<state>$PROJ_DIR$\..\Drivers\Tmp117</state>
|
|
||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>CCStdIncCheck</name>
|
<name>CCStdIncCheck</name>
|
||||||
|
@ -1486,7 +1485,6 @@
|
||||||
<state>$PROJ_DIR$\..\tools</state>
|
<state>$PROJ_DIR$\..\tools</state>
|
||||||
<state>$PROJ_DIR$\..\App\Inc</state>
|
<state>$PROJ_DIR$\..\App\Inc</state>
|
||||||
<state>$PROJ_DIR$\..\Drivers\HP203B</state>
|
<state>$PROJ_DIR$\..\Drivers\HP203B</state>
|
||||||
<state>$PROJ_DIR$\..\Drivers\Tmp117</state>
|
|
||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>CCStdIncCheck</name>
|
<name>CCStdIncCheck</name>
|
||||||
|
@ -2484,15 +2482,6 @@
|
||||||
<name>$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c</name>
|
<name>$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c</name>
|
||||||
</file>
|
</file>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
|
||||||
<name>tmp117</name>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\..\Drivers\Tmp117\tmp117.c</name>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\..\Drivers\Tmp117\tmp117.h</name>
|
|
||||||
</file>
|
|
||||||
</group>
|
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<name>Middlewares</name>
|
<name>Middlewares</name>
|
||||||
|
|
|
@ -3111,15 +3111,6 @@
|
||||||
<name>$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c</name>
|
<name>$PROJ_DIR$\..\Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c</name>
|
||||||
</file>
|
</file>
|
||||||
</group>
|
</group>
|
||||||
<group>
|
|
||||||
<name>tmp117</name>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\..\Drivers\Tmp117\tmp117.c</name>
|
|
||||||
</file>
|
|
||||||
<file>
|
|
||||||
<name>$PROJ_DIR$\..\Drivers\Tmp117\tmp117.h</name>
|
|
||||||
</file>
|
|
||||||
</group>
|
|
||||||
</group>
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<name>Middlewares</name>
|
<name>Middlewares</name>
|
||||||
|
|
Loading…
Reference in New Issue