From 2f4dd2660df552c33b345e1a1f4dfcc9e34836fd Mon Sep 17 00:00:00 2001 From: zouhaitao Date: Wed, 29 Jul 2026 09:57:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E9=94=81=E6=81=A2=E5=A4=8D=20S?= =?UTF-8?q?OS=20=E7=89=A9=E7=90=86=E6=8C=89=E9=94=AE=E7=94=B5=E5=B9=B3?= =?UTF-8?q?=E8=AF=BB=E5=8F=96=E9=80=BB=E8=BE=91=EF=BC=8C=E5=B9=B6=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=20GPIO=5FInit=20=E4=B8=AD=E5=AF=B9=E5=BA=94=20P2.6=20?= =?UTF-8?q?=E7=9A=84=E4=B8=8A=E6=8B=89=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/event.c | 2 +- App/system.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/App/event.c b/App/event.c index bf12a6d..ba37f39 100644 --- a/App/event.c +++ b/App/event.c @@ -193,7 +193,7 @@ void Event_KeyScan_Poll(void) u8 raw_up = !KEY_UP; u8 raw_down = ADC_IsKeyDown(); // KEY_DOWN 通过 P0.3 ADC 通道判定 (常态 2.0V, 按下 3.7V) u8 raw_confirm = !KEY_CONFIRM; - u8 raw_sos = 0; // 临时注释关闭 SOS 物理按键电平检测,防浮空干扰 + u8 raw_sos = !KEY_SOS; // 恢复 SOS 物理按键电平检测 key_scan_timer = 0; // 重置扫描分频计数器 // 按键调试诊断:若按键 ADC 值有变化或处于高电平,串口输出真实 ADC 值 diff --git a/App/system.c b/App/system.c index 3578669..492e4ed 100644 --- a/App/system.c +++ b/App/system.c @@ -51,6 +51,12 @@ void GPIO_Init(void) MOTOR = 0; RGB_DIN = 0; // P2.3 初始拉低,防止上电期间 WS2812B 误触发 + // 配置 KEY_SOS (P2.6) 为带上拉准双向口模式以确保输入稳定 + P2M1 &= ~(1 << 6); + P2M0 &= ~(1 << 6); + KEY_SOS = 1; + (*(unsigned char volatile xdata *)0xFE12) |= (1 << 6); // 使能 P2.6 的强内部上拉电阻 (P2PU = 0xFE12) + // SGM_CTRL (P1.7), LCD 控制管脚 (P1.0, P1.1, P1.4, P1.5, P1.6) 置为推挽输出 P1M1 &= ~((1 << 7) | (1 << 0) | (1 << 1) | (1 << 4) | (1 << 5) | (1 << 6)); P1M0 |= ((1 << 7) | (1 << 0) | (1 << 1) | (1 << 4) | (1 << 5) | (1 << 6));