diff --git a/.mrs/launch.json b/.mrs/launch.json index a24afd0..235bd35 100644 --- a/.mrs/launch.json +++ b/.mrs/launch.json @@ -5,12 +5,12 @@ "type": "mrs-debugger", "request": "launch", "name": "IoT_SCV_CH584M1", - "cwd": "c:\\Users\\16586\\Desktop\\iot_-scv_-ch584-m(1)", + "cwd": "c:\\Users\\123\\Desktop\\自闭阀项目\\V1.1\\iot_-scv_-ch584-m", "openOCDCfg": { "useLocalOpenOCD": true, - "executable": "c:/MounRiver/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/openocd.exe", + "executable": "d:/MounRiverV2/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/openocd.exe", "configOptions": [ - "-f \"c:/MounRiver/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/wch-riscv.cfg\" -c \"chip_id CH32L10x\"" + "-f \"d:/MounRiverV2/MounRiver_Studio2/resources/app/resources/win32/components/WCH/OpenOCD/OpenOCD/bin/wch-riscv.cfg\" -c \"chip_id CH32L10x\"" ], "gdbport": 3333, "telnetport": 4444, @@ -22,7 +22,7 @@ "enableNoZeroWaitingAreaFlash": false }, "gdbCfg": { - "executable": "c:/MounRiver/MounRiver_Studio2/resources/app/resources/win32/components/WCH/Toolchain/RISC-V Embedded GCC12/bin/riscv-wch-elf-gdb.exe", + "executable": "d:/MounRiverV2/MounRiver_Studio2/resources/app/resources/win32/components/WCH/Toolchain/RISC-V Embedded GCC12/bin/riscv-wch-elf-gdb.exe", "commands": [ "set mem inaccessible-by-default off", "set architecture riscv:rv32", @@ -39,8 +39,8 @@ "additionalCommands": [] }, "loadedFiles": { - "executableFile": "c:\\Users\\16586\\Desktop\\iot_-scv_-ch584-m(1)\\obj\\IoT_SCV_CH584M1.elf", - "symbolFile": "c:\\Users\\16586\\Desktop\\iot_-scv_-ch584-m(1)\\obj\\IoT_SCV_CH584M1.elf", + "executableFile": "c:\\Users\\123\\Desktop\\自闭阀项目\\V1.1\\iot_-scv_-ch584-m\\obj\\IoT_SCV_CH584M1.elf", + "symbolFile": "c:\\Users\\123\\Desktop\\自闭阀项目\\V1.1\\iot_-scv_-ch584-m\\obj\\IoT_SCV_CH584M1.elf", "executableFileOffset": 0, "symbolFileOffset": 0 }, diff --git a/APP/peripheral.c b/APP/peripheral.c index 466a661..7937cc5 100644 --- a/APP/peripheral.c +++ b/APP/peripheral.c @@ -870,22 +870,22 @@ void BLE_ConnectEventCB(uint32_t timeUs) *********************************************************************/ // ڴ˴handleTimerCloseReqӶʱطĴ -static void handleTimerCloseReq(uint16_t time_min) -{ - // öʱط - BSP_VALVE_StartTimerClose(time_min); +// static void handleTimerCloseReq(uint16_t time_min) +// { +// // öʱط +// BSP_VALVE_StartTimerClose(time_min); - // ظóɹ - uint8_t buf[3]; - buf[0] = 0x01; // ɹ־ - buf[1] = (time_min >> 8) & 0xFF; // ֽ - buf[2] = time_min & 0xFF; // ֽ +// // ظóɹ +// uint8_t buf[3]; +// buf[0] = 0x01; // ɹ־ +// buf[1] = (time_min >> 8) & 0xFF; // ֽ +// buf[2] = time_min & 0xFF; // ֽ - // ºͻ˷ͻظ - // sendTimerCloseRsp(buf, sizeof(buf)); +// // ºͻ˷ͻظ +// // sendTimerCloseRsp(buf, sizeof(buf)); - logInfo("Set timer close: %d minutes", time_min); -} +// logInfo("Set timer close: %d minutes", time_min); +// } // ڴBLEĵطӴʱطĴ // ´ĺӶԶʱطĴ diff --git a/bsp/src/bsp_bmp390.c b/bsp/src/bsp_bmp390.c index 3dcdfec..bdc7174 100644 --- a/bsp/src/bsp_bmp390.c +++ b/bsp/src/bsp_bmp390.c @@ -424,8 +424,8 @@ void Lower_IO_Deinit(void) GPIOA_ModeCfg(LED_VBAT_PIN | LED_ALARM_PIN, GPIO_ModeIN_PD); // KEY | RESET KEY | boot KEY - GPIOA_ResetBits(KEY_BPIN); - GPIOA_ModeCfg(KEY_BPIN, GPIO_ModeIN_PU); + GPIOB_ResetBits(KEY_BPIN); + GPIOB_ModeCfg(KEY_BPIN, GPIO_ModeIN_PU); // GPIOB_ResetBits(GPIO_Pin_23 | GPIO_Pin_22); // GPIOB_ModeCfg(GPIO_Pin_23 | GPIO_Pin_22, GPIO_ModeIN_PD); @@ -901,27 +901,6 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) logError("******************************"); logError("欠压关阀"); } - if (isWithinTolerance(ValveRawData_buffer[2].in_press, ValveRawData_buffer[4].in_press, 50) - && ValveRawData_buffer[4].in_out_press_diff >= 900) - { - logError("******************************"); - logError("点火开阀"); - for (int i = 2; i < 5; i++) - { - logDebug("[%d]: in_press = %d; out_press = %d; in_out_press_diff = %d", i, ValveRawData_buffer[i].in_press, ValveRawData_buffer[i].out_press, ValveRawData_buffer[i].in_out_press_diff); - } - VALVE_OPEN(); - tmos_start_task(check_task_id, MOTOR_STOP_EVT, MS1_TO_SYSTEM_TIME(CHARGE_TIME_MS)); - } - else - { - logDebug("点火开阀失败"); - for (int i = 2; i < 5; i++) - { - logDebug("[%d]: in_press = %d; out_press = %d; in_out_press_diff = %d", i - , ValveRawData_buffer[i].in_press, ValveRawData_buffer[i].out_press, ValveRawData_buffer[i].in_out_press_diff); - } - } #if 0 // 1、过流自动关闭: // 进气端压力2kpa时,额定流量调到0.9 @@ -986,8 +965,6 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) } } - // 点火开阀 - // 超温关阀功能:检测至少两个传感器的温度超过阈值 if (!valve_safety.over_temp_flag && gValveData.switch_status == kOpened) { @@ -1132,14 +1109,6 @@ uint16_t Check_ProcessEvent(uint8_t task_id, uint16_t events) if (events & MOTOR_STOP_EVT) { VALVE_STOP(); - if (gValveData.switch_status == kClosed) - { - gValveData.switch_status = kOpened; - } - else if (gValveData.switch_status == kOpened) - { - gValveData.switch_status = kClosed; - } logDebug("motor STOP"); // DelayMs(1500); diff --git a/bsp/src/bsp_key.c b/bsp/src/bsp_key.c index 78455b5..3d737bf 100644 --- a/bsp/src/bsp_key.c +++ b/bsp/src/bsp_key.c @@ -301,16 +301,16 @@ void BSP_KEY_Init(app_task_evt_handler_t handler) GPIOB_ModeCfg(KEY_BPIN, GPIO_ModeIN_PU); // 下降沿触发 - // GPIOB_ITModeCfg(KEY_BPIN, GPIO_ITMode_FallEdge); + GPIOB_ITModeCfg(KEY_BPIN, GPIO_ITMode_FallEdge); // 开启GPIO的睡眠唤醒,如果需要的话 // PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay); - // PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); + PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); // 开启GPIOB中断 - // PFIC_EnableIRQ(GPIO_B_IRQn); + PFIC_EnableIRQ(GPIO_B_IRQn); - // tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS)); + tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS)); // tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(5)); @@ -374,7 +374,7 @@ void GPIOB_IRQHandler(void) GPIOB_ClearITFlagBit(KEY_BPIN); // 检查是否为真实按键事件(通过确认电平是否真的接近0V) - if (IS_KEY_Vaild() == 0) + if (IS_KEY_Vaild() == 1) { // 确认是真实按键事件 // 阻止睡眠 diff --git a/bsp/src/bsp_motor.c b/bsp/src/bsp_motor.c index 1df9e2b..09dc0e1 100644 --- a/bsp/src/bsp_motor.c +++ b/bsp/src/bsp_motor.c @@ -29,7 +29,7 @@ void VALVE_OPEN(void) GPIOB_SetBits(COIL_A); GPIOB_ResetBits(COIL_B); valve_status.motor_state = 1; - // gValveData.switch_status = kOpened; + gValveData.switch_status = kOpened; } void VALVE_CLOSE(void) @@ -39,7 +39,7 @@ void VALVE_CLOSE(void) GPIOB_ResetBits(COIL_A); GPIOB_SetBits(COIL_B); valve_status.motor_state = 0; - // gValveData.switch_status = kClosed; + gValveData.switch_status = kClosed; } void VALVE_STOP(void) diff --git a/bsp/src/bsp_valve.c b/bsp/src/bsp_valve.c index 1e4943d..006dc20 100644 --- a/bsp/src/bsp_valve.c +++ b/bsp/src/bsp_valve.c @@ -196,17 +196,17 @@ static void VAVLE_Task_ProcessTmosMsg(uint8_t *p_rev_msg) // 处理TMOS消息函 logDebug("kCmdOpenVavle"); tmos_set_event(vavle_task_id, VAVLE_OPEN_START_EVT); break; - case kCmdTimerCloseVavle: // 定时关阀命令 - logDebug("kCmdTimerCloseVavle"); - if (HostFrameData->len >= 2) { - // 定时参数在data中,前2字节表示定时时间(分钟) - uint16_t close_min = (HostFrameData->data[0] << 8) | HostFrameData->data[1]; - BSP_VALVE_StartTimerClose(close_min); - } else { - // 使用默认时间 - BSP_VALVE_StartTimerClose(VALVE_TIMER_CLOSE_DEFAULT_MIN); - } - break; + // case kCmdTimerCloseVavle: // 定时关阀命令 + // logDebug("kCmdTimerCloseVavle"); + // if (HostFrameData->len >= 2) { + // // 定时参数在data中,前2字节表示定时时间(分钟) + // uint16_t close_min = (HostFrameData->data[0] << 8) | HostFrameData->data[1]; + // BSP_VALVE_StartTimerClose(close_min); + // } else { + // // 使用默认时间 + // BSP_VALVE_StartTimerClose(VALVE_TIMER_CLOSE_DEFAULT_MIN); + // } + // break; default: logError("Invalid command"); break; @@ -360,25 +360,25 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀 tmos_set_event(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT); } - // 检查定时关阀是否到时间 - if (gValveData.timer_close_enabled && gValveData.switch_status == kOpened) - { - uint32_t current_time = BSP_Get_Tick(); - uint32_t elapsed_ms = current_time - gValveData.timer_close_start_time; - uint32_t timer_ms = (uint32_t)gValveData.timer_close_min * 60 * 1000; + // // 检查定时关阀是否到时间 + // if (gValveData.timer_close_enabled && gValveData.switch_status == kOpened) + // { + // uint32_t current_time = BSP_Get_Tick(); + // uint32_t elapsed_ms = current_time - gValveData.timer_close_start_time; + // uint32_t timer_ms = (uint32_t)gValveData.timer_close_min * 60 * 1000; - if (elapsed_ms >= timer_ms) - { - // 时间到,触发关阀事件 - tmos_set_event(vavle_task_id, VAVLE_TIMER_CLOSE_EVT); - } - else - { - // 剩余时间(分钟) - uint16_t remain_min = (timer_ms - elapsed_ms) / (60 * 1000); - logDebug("Timer close remaining: %d minutes", remain_min); - } - } + // if (elapsed_ms >= timer_ms) + // { + // // 时间到,触发关阀事件 + // tmos_set_event(vavle_task_id, VAVLE_TIMER_CLOSE_EVT); + // } + // else + // { + // // 剩余时间(分钟) + // uint16_t remain_min = (timer_ms - elapsed_ms) / (60 * 1000); + // logDebug("Timer close remaining: %d minutes", remain_min); + // } + // } tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS)); @@ -414,49 +414,49 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀 return (events ^ VAVLE_LOW_VBAT_LED_OFF_EVT); } - // 定时关阀事件处理 - if (events & VAVLE_TIMER_CLOSE_EVT) - { - logDebug("VAVLE_TIMER_CLOSE_EVT"); + // // 定时关阀事件处理 + // if (events & VAVLE_TIMER_CLOSE_EVT) + // { + // logDebug("VAVLE_TIMER_CLOSE_EVT"); - // 关闭定时器 - BSP_VALVE_StopTimerClose(); + // // 关闭定时器 + // BSP_VALVE_StopTimerClose(); - // 如果阀门当前是打开状态,则触发关闭 - if (gValveData.switch_status == kOpened) - { - // 触发关阀事件 - tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT); - } + // // 如果阀门当前是打开状态,则触发关闭 + // if (gValveData.switch_status == kOpened) + // { + // // 触发关阀事件 + // tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT); + // } - return (events ^ VAVLE_TIMER_CLOSE_EVT); - } + // return (events ^ VAVLE_TIMER_CLOSE_EVT); + // } - // 定时关阀开始事件处理 - if (events & VAVLE_TIMER_CLOSE_START_EVT) - { - logDebug("VAVLE_TIMER_CLOSE_START_EVT"); + // // 定时关阀开始事件处理 + // if (events & VAVLE_TIMER_CLOSE_START_EVT) + // { + // logDebug("VAVLE_TIMER_CLOSE_START_EVT"); - // 记录开始时间 - gValveData.timer_close_start_time = BSP_Get_Tick(); - gValveData.timer_close_enabled = 1; + // // 记录开始时间 + // gValveData.timer_close_start_time = BSP_Get_Tick(); + // gValveData.timer_close_enabled = 1; - logDebug("Timer close started: %d minutes", gValveData.timer_close_min); + // logDebug("Timer close started: %d minutes", gValveData.timer_close_min); - // 闪烁LED提示用户定时已设置(可选) - LED_VALVE_CLOSE; - DelayMs(200); - if (gValveData.switch_status == kOpened) - { - LED_VALVE_OPEN; - } - else - { - LED_VALVE_CLOSE; - } + // // 闪烁LED提示用户定时已设置(可选) + // LED_VALVE_CLOSE; + // DelayMs(200); + // if (gValveData.switch_status == kOpened) + // { + // LED_VALVE_OPEN; + // } + // else + // { + // LED_VALVE_CLOSE; + // } - return (events ^ VAVLE_TIMER_CLOSE_START_EVT); - } + // return (events ^ VAVLE_TIMER_CLOSE_START_EVT); + // } return 0; } @@ -488,53 +488,53 @@ void BSP_VAVLE_Init(void) // 阀门初始化函数 gValveData.switch_status = kClosed; // 初始化阀门状态为关闭 } -void BSP_VALVE_StartTimerClose(uint16_t close_min) -{ - if (close_min == 0) - { - // 关闭定时器 - BSP_VALVE_StopTimerClose(); - return; - } +// void BSP_VALVE_StartTimerClose(uint16_t close_min) +// { +// if (close_min == 0) +// { +// // 关闭定时器 +// BSP_VALVE_StopTimerClose(); +// return; +// } - // 限制最大定时时间 - if (close_min > VALVE_TIMER_CLOSE_MAX_MIN) - { - close_min = VALVE_TIMER_CLOSE_MAX_MIN; - } +// // 限制最大定时时间 +// if (close_min > VALVE_TIMER_CLOSE_MAX_MIN) +// { +// close_min = VALVE_TIMER_CLOSE_MAX_MIN; +// } - // 设置定时参数 - gValveData.timer_close_min = close_min; +// // 设置定时参数 +// gValveData.timer_close_min = close_min; - // 触发定时开始事件 - tmos_set_event(vavle_task_id, VAVLE_TIMER_CLOSE_START_EVT); +// // 触发定时开始事件 +// tmos_set_event(vavle_task_id, VAVLE_TIMER_CLOSE_START_EVT); - logDebug("BSP_VALVE_StartTimerClose: %d minutes", close_min); -} +// logDebug("BSP_VALVE_StartTimerClose: %d minutes", close_min); +// } -void BSP_VALVE_StopTimerClose(void) -{ - gValveData.timer_close_enabled = 0; - gValveData.timer_close_min = 0; +// void BSP_VALVE_StopTimerClose(void) +// { +// gValveData.timer_close_enabled = 0; +// gValveData.timer_close_min = 0; - logDebug("BSP_VALVE_StopTimerClose"); -} +// logDebug("BSP_VALVE_StopTimerClose"); +// } -uint16_t BSP_VALVE_GetTimerCloseRemainMin(void) -{ - if (!gValveData.timer_close_enabled) - { - return 0; - } +// uint16_t BSP_VALVE_GetTimerCloseRemainMin(void) +// { +// if (!gValveData.timer_close_enabled) +// { +// return 0; +// } - uint32_t current_time = BSP_Get_Tick(); - uint32_t elapsed_ms = current_time - gValveData.timer_close_start_time; - uint32_t timer_ms = (uint32_t)gValveData.timer_close_min * 60 * 1000; +// uint32_t current_time = BSP_Get_Tick(); +// uint32_t elapsed_ms = current_time - gValveData.timer_close_start_time; +// uint32_t timer_ms = (uint32_t)gValveData.timer_close_min * 60 * 1000; - if (elapsed_ms >= timer_ms) - { - return 0; - } +// if (elapsed_ms >= timer_ms) +// { +// return 0; +// } - return (timer_ms - elapsed_ms) / (60 * 1000); -} +// return (timer_ms - elapsed_ms) / (60 * 1000); +// }