From 17b751f33143735e64cb1f80ab3cac98e7eeeeca Mon Sep 17 00:00:00 2001 From: stark1898y <1658608470@qq.com> Date: Fri, 23 May 2025 17:33:14 +0800 Subject: [PATCH] =?UTF-8?q?bsp=5Fled=20=E6=B5=8B=E8=AF=95ok?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 4 +- bsp/inc/bsp_led.h | 190 +++++++++++++++++++++++------------------- bsp/src/bsp_bmp390.c | 8 +- bsp/src/bsp_led.c | 114 +++++++++++++++++++++++-- bsp/src/bsp_valve.c | 4 +- 5 files changed, 219 insertions(+), 101 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index a6f4bc4..b59ef8c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,7 +10,9 @@ "sleep.h": "c", "bsp_ml307r.h": "c", "bsp_adc.h": "c", - "log.h": "c" + "log.h": "c", + "bsp_led.h": "c", + "bsp_uart.h": "c" }, "MicroPython.executeButton": [ { diff --git a/bsp/inc/bsp_led.h b/bsp/inc/bsp_led.h index 23c815a..bbcf19b 100644 --- a/bsp/inc/bsp_led.h +++ b/bsp/inc/bsp_led.h @@ -1,108 +1,124 @@ -/* - * bsp_led.h - * - * Created on: 20241216 - * Author: 123 - */ +#ifndef __BSP_LED_H__ +#define __BSP_LED_H__ -#ifndef INC_BSP_LED_H_ -#define INC_BSP_LED_H_ +#include "CONFIG.h" -#include "CH58x_common.h" +#define LED_ALARM_R_BPIN GPIO_Pin_8 +#define LED_RUN_G_BPIN GPIO_Pin_9 +#define LED_FAULT_Y_APIN GPIO_Pin_1 +#define LED_VBAT_R_APIN GPIO_Pin_7 -#define LED_VALVE_R_PIN GPIO_Pin_8 -#define LED_VALVE_G_PIN GPIO_Pin_9 -#define LED_ALARM_PIN GPIO_Pin_1 -#define LED_VBAT_PIN GPIO_Pin_7 - -/*********************************************************************************************** -#define LED_VALVE_OPEN {GPIOA_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ - GPIOA_SetBits(LED_VALVE_G_PIN);} - -#define LED_VALVE_CLOSE {GPIOA_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ - GPIOA_SetBits(LED_VALVE_R_PIN);} - -#define LED_ALARM_OPEN GPIOB_SetBits(LED_ALARM_PIN) - -#define LED_ALARM_CLOSE GPIOB_ResetBits(LED_ALARM_PIN) - -#define LED_VBAT_OPEN GPIOA_SetBits(LED_VBAT_PIN) - -#define LED_VBAT_CLOSE GPIOA_ResetBits(LED_VBAT_PIN) - -#define LED_ALL_OPEN {GPIOA_SetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ - GPIOA_SetBits(LED_ALARM_PIN | LED_VBAT_PIN)} - -#define LED_ALL_CLOSE {GPIOA_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ - GPIOA_ResetBits(LED_ALARM_PIN | LED_VBAT_PIN);} -****************************************************************************************************/ - -/**********LED_VALVE**************/ -#define LED_VALVE_OPEN \ - do \ - { \ - GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN );\ - GPIOB_SetBits(LED_VALVE_G_PIN); \ - GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \ +/**********LED_ALARM_R_BPIN**************/ +#define LED_ALARM_R_ON \ + do \ + { \ + GPIOB_SetBits(LED_ALARM_R_BPIN); \ + GPIOB_ModeCfg(LED_ALARM_R_BPIN, GPIO_ModeOut_PP_5mA); \ } while (0); -#define LED_VALVE_CLOSE \ - do \ - { \ - GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);\ - GPIOB_SetBits(LED_VALVE_R_PIN); \ - GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \ +#define LED_ALARM_R_OFF \ + do \ + { \ + GPIOB_ResetBits(LED_ALARM_R_BPIN); \ + GPIOB_ModeCfg(LED_ALARM_R_BPIN, GPIO_ModeIN_PD); \ + } while (0); + +/**********LED_RUN_G_BPIN**************/ +#define LED_RUN_G_ON \ + do \ + { \ + GPIOB_SetBits(LED_RUN_G_BPIN); \ + GPIOB_ModeCfg(LED_RUN_G_BPIN, GPIO_ModeOut_PP_5mA); \ + } while (0); + +#define LED_RUN_G_OFF \ + do \ + { \ + GPIOB_ResetBits(LED_RUN_G_BPIN); \ + GPIOB_ModeCfg(LED_RUN_G_BPIN, GPIO_ModeIN_PD); \ + } while (0); + +/**********LED_FAULT_Y_APIN**************/ +#define LED_FAULT_Y_ON \ + do \ + { \ + GPIOA_SetBits(LED_FAULT_Y_APIN); \ + GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeOut_PP_5mA); \ + } while (0); + +#define LED_FAULT_Y_OFF do \ + { \ + GPIOA_ResetBits(LED_FAULT_Y_APIN); \ + GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeIN_PD); \ + } \ + while (0); + +/**********LED_VBAT_R_APIN**************/ +#define LED_VBAT_R_ON \ + do \ + { \ + GPIOA_SetBits(LED_VBAT_R_APIN); \ + GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeOut_PP_5mA); \ + } while (0); + +#define LED_VBAT_R_OFF \ + do \ + { \ + GPIOA_ResetBits(LED_VBAT_R_APIN); \ + GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeIN_PD); \ + } while (0); + +#define LED_VALVE_OPEN \ + do \ + { \ + GPIOB_ResetBits(LED_ALARM_R_BPIN | LED_RUN_G_BPIN); \ + GPIOB_SetBits(LED_RUN_G_BPIN); \ + GPIOB_ModeCfg(LED_ALARM_R_BPIN | LED_RUN_G_BPIN, GPIO_ModeOut_PP_5mA); \ + } while (0); + +#define LED_VALVE_CLOSE \ + do \ + { \ + GPIOB_ResetBits(LED_ALARM_R_BPIN | LED_RUN_G_BPIN); \ + GPIOB_SetBits(LED_ALARM_R_BPIN); \ + GPIOB_ModeCfg(LED_ALARM_R_BPIN | LED_RUN_G_BPIN, GPIO_ModeOut_PP_5mA); \ } while (0); /**********LED_ALARM**************/ -#define LED_ALARM_OPEN \ - do \ - { \ - GPIOA_SetBits(LED_ALARM_PIN); \ - GPIOA_ModeCfg(LED_ALARM_PIN, GPIO_ModeOut_PP_5mA); \ +#define LED_ALARM_OPEN \ + do \ + { \ + GPIOA_SetBits(LED_FAULT_Y_APIN); \ + GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeOut_PP_5mA); \ } while (0); -#define LED_ALARM_CLOSE \ - do \ - { \ - GPIOA_ResetBits(LED_ALARM_PIN); \ - GPIOA_ModeCfg(LED_ALARM_PIN, GPIO_ModeOut_PP_5mA); \ +#define LED_ALARM_CLOSE \ + do \ + { \ + GPIOA_ResetBits(LED_FAULT_Y_APIN); \ + GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeOut_PP_5mA); \ } while (0); /**********LED_VBAT**************/ -#define LED_VBAT_OPEN \ - do \ - { \ - GPIOA_SetBits(LED_VBAT_PIN); \ - GPIOA_ModeCfg(LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \ +#define LED_VBAT_OPEN \ + do \ + { \ + GPIOA_SetBits(LED_VBAT_R_APIN); \ + GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeOut_PP_5mA); \ } while (0); -#define LED_VBAT_CLOSE \ - do \ - { \ - GPIOA_ResetBits(LED_VBAT_PIN); \ - GPIOA_ModeCfg(LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \ +#define LED_VBAT_CLOSE \ + do \ + { \ + GPIOA_ResetBits(LED_VBAT_R_APIN); \ + GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeOut_PP_5mA); \ } while (0); -/**********LED_ALL**************/ -#define LED_ALL_OPEN \ - do \ - { \ - GPIOB_SetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);\ - GPIOA_SetBits(LED_ALARM_PIN | LED_VBAT_PIN);\ - GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \ - GPIOA_ModeCfg(LED_ALARM_PIN | LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \ - } while (0); +extern tmosTaskID led_task_id; -#define LED_ALL_CLOSE \ - do \ - { \ - GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);\ - GPIOA_ResetBits(LED_ALARM_PIN | LED_VBAT_PIN); \ - GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \ - GPIOA_ModeCfg(LED_ALARM_PIN | LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \ - } while (0); +void BSP_LED_AllOn(void); +void BSP_LED_AllOff(void); void BSP_LED_Init(void); -#endif /* INC_BSP_LED_H_ */ +#endif /* __BSP_LED_H__ */ diff --git a/bsp/src/bsp_bmp390.c b/bsp/src/bsp_bmp390.c index bdc7174..ce32faf 100644 --- a/bsp/src/bsp_bmp390.c +++ b/bsp/src/bsp_bmp390.c @@ -418,10 +418,10 @@ void PRESS_LowerIO_Init(void) void Lower_IO_Deinit(void) { // LED - GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN); - GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeIN_PD); - GPIOA_ResetBits(LED_VBAT_PIN | LED_ALARM_PIN); - GPIOA_ModeCfg(LED_VBAT_PIN | LED_ALARM_PIN, GPIO_ModeIN_PD); + GPIOB_ResetBits(LED_ALARM_R_BPIN | LED_RUN_G_BPIN); + GPIOB_ModeCfg(LED_ALARM_R_BPIN | LED_RUN_G_BPIN, GPIO_ModeIN_PD); + GPIOA_ResetBits(LED_VBAT_R_APIN | LED_FAULT_Y_APIN); + GPIOA_ModeCfg(LED_VBAT_R_APIN | LED_FAULT_Y_APIN, GPIO_ModeIN_PD); // KEY | RESET KEY | boot KEY GPIOB_ResetBits(KEY_BPIN); diff --git a/bsp/src/bsp_led.c b/bsp/src/bsp_led.c index 370dafb..35ce702 100644 --- a/bsp/src/bsp_led.c +++ b/bsp/src/bsp_led.c @@ -6,15 +6,115 @@ */ #include "bsp_led.h" -void BSP_LED_Init(void) +#include "bsp_uart.h" +#include "log.h" + +#undef LOG_ENABLE +#define LOG_ENABLE 1 + +#define LOG_LVL LOG_DEBUG + +#undef LOG_TAG +#define LOG_TAG "led" + +tmosTaskID led_task_id = INVALID_TASK_ID; + +static tmosEvents LED_Task_ProcessEvent(tmosTaskID taskID, tmosEvents event) { - GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN); - GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); - GPIOA_ResetBits(LED_ALARM_PIN); - GPIOA_ModeCfg(LED_ALARM_PIN, GPIO_ModeOut_PP_5mA); - GPIOA_ResetBits(LED_VBAT_PIN); - GPIOA_ModeCfg(LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); } +void BSP_LED_AllOn(void) +{ + LED_ALARM_R_ON; + LED_RUN_G_ON; + LED_FAULT_Y_ON; + LED_VBAT_R_ON;; +} + +void BSP_LED_AllOff(void) +{ + LED_ALARM_R_OFF; + LED_RUN_G_OFF; + LED_FAULT_Y_OFF; + LED_VBAT_R_OFF; +} + +void BSP_LED_Init(void) +{ + BSP_LED_AllOff(); + + led_task_id = TMOS_ProcessEventRegister(LED_Task_ProcessEvent); + if (led_task_id == INVALID_TASK_ID) + { + logError("LED task register failed"); + return; + } + logInfo("BSP_LED_Init"); +} + +void LED_Ctrl(uint8_t led, uint8_t status) +{ + switch (led) + { + case 0: + if (status) + { + BSP_LED_AllOn(); + } + else + { + BSP_LED_AllOff(); + } + break; + + case 1: + if (status) + { + LED_ALARM_R_ON; + } + else + { + LED_ALARM_R_OFF; + } + break; + + case 2: + if (status) + { + LED_RUN_G_ON; + } + else + { + LED_RUN_G_OFF; + } + break; + + case 3: + if (status) + { + LED_FAULT_Y_ON; + } + else + { + LED_FAULT_Y_OFF; + } + break; + case 4: + if (status) + { + LED_VBAT_R_ON; + } + else + { + LED_VBAT_R_OFF; + } + break; + + default: + break; + } +} +SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), + LED_Ctrl, LED_Ctrl, "LED_Ctrl "); diff --git a/bsp/src/bsp_valve.c b/bsp/src/bsp_valve.c index 006dc20..54e83b0 100644 --- a/bsp/src/bsp_valve.c +++ b/bsp/src/bsp_valve.c @@ -282,7 +282,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀 if (events & VAVLE_CLOSE_END_EVT) // 阀门关闭结束事件 { VALVE_STOP(); - LED_ALL_CLOSE; + BSP_LED_AllOff(); tmos_memset(&RelyData, 0, sizeof(RelyData)); BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1); @@ -328,7 +328,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀 if (events & VAVLE_OPEN_END_EVT) // 阀门打开结束事件 { VALVE_STOP(); - LED_ALL_CLOSE; + BSP_LED_AllOff(); tmos_memset(&RelyData, 0, sizeof(RelyData)); BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdOpenVavle, 1);