From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期四, 24 四月 2025 16:01:43 +0800 Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式 --- 01_SDK/nimble/mcu_boot/src/signal.c | 66 ++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 30 deletions(-) diff --git a/01_SDK/nimble/mcu_boot/src/signal.c b/01_SDK/nimble/mcu_boot/src/signal.c index 8307ed2..79362bc 100644 --- a/01_SDK/nimble/mcu_boot/src/signal.c +++ b/01_SDK/nimble/mcu_boot/src/signal.c @@ -1,3 +1,5 @@ +#include "soc_api.h" +#include "app_log.h" #include "signal.h" #include "flash_manager.h" #include "prf_ota.h" @@ -5,56 +7,60 @@ bool sig_key1_push_down(void) { - GPIO_SetMode(P2, BIT0, GPIO_MODE_INPUT); - GPIO_EnablePullupPath(P2, BIT0); - - for (uint16_t i = 0; i < 1000; i++) { - if (P20 == 1) { - return false; - } - } - return true; + GPIO_SetMode(P0, BIT6, GPIO_MODE_INPUT); + GPIO_EnablePullupPath(P0, BIT6); + SYS_delay_10nop(10000); + + for (uint16_t i = 0; i < 1000; i++) { + if (P06 == 1) { + return false; + } + } + return true; } bool sig_key2_push_down(void) { + GPIO_SetMode(P1, BIT2, GPIO_MODE_INPUT); + GPIO_EnablePullupPath(P1, BIT2); + SYS_delay_10nop(10000); - GPIO_SetMode(P2, BIT1, GPIO_MODE_INPUT); - GPIO_EnablePullupPath(P2, BIT1); - - for (uint16_t i = 0; i < 1000; i++) { - if (P21 == 1) { - return false; - } - } - return true; + for (uint16_t i = 0; i < 1000; i++) { + if (P12 == 1) { + return false; + } + } + + return true; } bool sig_special_ram_value_detected(void) { - return false; + return false; } bool sig_ota_start_received(void) { - return panchip_prf_ota_start(); + return panchip_prf_ota_start(); } bool sig_back_up_is_completed_image(void) { - return fm_image_completed_check(FLASH_AREA_BACK_UP_START); + APP_LOG_INFO("Check valid image in App Backup Partition..\n"); + + return fm_image_completed_check(FLASH_AREA_BACK_UP_START); } +/* recovery gpio status that you used to trigger signal */ void sig_hardware_recovery(void) { - GPIO_DisablePullupPath(P2, BIT1); - GPIO_SetMode(P2, BIT1, GPIO_MODE_INPUT); - GPIO_DisableDigitalPath(P2, BIT1); - GPIO_DisablePullupPath(P2, BIT0); - GPIO_SetMode(P2, BIT0, GPIO_MODE_INPUT); - GPIO_DisableDigitalPath(P2, BIT0); + // Reset P06 (KEY1) to default state + GPIO_DisablePullupPath(P0, BIT6); + GPIO_SetMode(P0, BIT6, GPIO_MODE_INPUT); + GPIO_DisableDigitalPath(P0, BIT6); - /* PHY Reset */ - CLK->IPRST0 |= (BIT3 | BIT7 | BIT8); - CLK->IPRST0 &= ~(BIT3 | BIT7 | BIT8); + // Reset P12 (KEY2) to default state + GPIO_DisablePullupPath(P1, BIT2); + GPIO_SetMode(P1, BIT2, GPIO_MODE_INPUT); + GPIO_DisableDigitalPath(P1, BIT2); } -- Gitblit v1.9.3