From 7603947fd1fcc764c82f5c04e6228d185237cc72 Mon Sep 17 00:00:00 2001 From: czq <860517298@qq.com> Date: Fri, 30 May 2025 13:10:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9A=82=E5=AD=98=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=B0=83=E6=95=B4=E5=8F=8A=E5=BE=AE=E6=B3=84?= =?UTF-8?q?=E6=BC=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/src/bsp_bmp390.c | 47 ++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/bsp/src/bsp_bmp390.c b/bsp/src/bsp_bmp390.c index 4e9d36a..97cb2cf 100644 --- a/bsp/src/bsp_bmp390.c +++ b/bsp/src/bsp_bmp390.c @@ -722,12 +722,12 @@ BMP390_ProcessEvent(uint8_t task_id, uint16_t events) void VALVE_SetInfo() { ValveInfo.over_press = 6200; - ValveInfo.low_press = 800; + ValveInfo.low_press = 680; ValveInfo.over_temp = 65; - ValveInfo.over_flow_press_diff_1kpa = 500; - ValveInfo.over_flow_press_diff_2kpa = 500; - ValveInfo.over_flow_press_diff_3kpa = 500; + ValveInfo.over_flow_press_diff_1kpa = 650; + ValveInfo.over_flow_press_diff_2kpa = 650; + ValveInfo.over_flow_press_diff_3kpa = 650; } void BSP_PRESS_Init(void) @@ -957,16 +957,16 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) stopAutoCloseTimer(); } // 欠压检测 - // else if (ValveRawData.in_press <= ValveInfo.low_press) - // { - // BSP_VALVE_Close(kValveCmdUnderPressure); // 使用欠压关阀原因 + else if (ValveRawData.in_press <= ValveInfo.low_press) + { + BSP_VALVE_Close(kValveCmdUnderPressure); // 使用欠压关阀原因 - // fault_state = 2; - // // 欠压关阀时停止延时关阀功能 - // stopAutoCloseTimer(); - // logError("******************************"); - // logError("欠压关阀"); - // } + fault_state = 2; + // 欠压关阀时停止延时关阀功能 + stopAutoCloseTimer(); + logError("******************************"); + logError("欠压关阀"); + } #if 1 // 1、过流自动关闭: // 进气端压力2kpa时,额定流量调到0.9 @@ -985,7 +985,7 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) { logDebug("keydown_time !%d", keydown_time); keydown_time++; - if (keydown_time > 25) + if (keydown_time > 30) { keydown_time = 0; keydown_flag = 0; @@ -1177,28 +1177,27 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) // 微泄漏检测事件处理 if (events & MICRO_LEAK_CHECK_EVT) { - // 只在阀门开启状态下检测微泄漏 - if (gValveData.switch_status == kOpened && !fault_state) + // 只在阀门关闭状态下检测微泄漏 + if (gValveData.switch_status == kClosed) { logDebug("微泄漏趋检测!!!!"); // 记录当前压差值 - static int last_press_diff = 0; + static int last_press = 0; // 比较当前值与上次值 - if (ValveRawData.in_out_press_diff > last_press_diff && - ValveRawData.in_out_press_diff > SAFETY_MICRO_LEAK_PRESS_DIFF) + if (ValveRawData.out_press < last_press) { - // 压差逐渐增大,可能是微泄漏 + // 出口压力逐渐增小,可能是微泄漏 valve_safety.micro_leak_count++; - logDebug("微泄漏检测: 压差增大 %d -> %d (第%d次/共需%d次)", - last_press_diff, ValveRawData.in_out_press_diff, + logError("微泄漏检测: 出口压力减小 %d -> %d (第%d次/共需%d次)", + last_press, ValveRawData.out_press, valve_safety.micro_leak_count, MICRO_LEAK_CHECK_COUNT); // 连续6次检测到压差增大,判定为微泄漏 if (valve_safety.micro_leak_count >= MICRO_LEAK_CHECK_COUNT) { logError("******************************"); - logError("检测到微泄漏,自动关闭阀门"); + logError("检测到微泄漏"); BSP_VALVE_Close(kValveCmdMicroLeak); // 使用微泄漏关阀原因 valve_safety.micro_leak_count = 0; // 重置计数器 @@ -1218,7 +1217,7 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) } // 更新上次压差值 - last_press_diff = ValveRawData.in_out_press_diff; + last_press = ValveRawData.out_press; } else {