From d0a1a87fc922734462d0caecf4b6bba8b936ee8b Mon Sep 17 00:00:00 2001
From: guowenxue@gmail.com <guowenxue>
Date: Tue, 07 Jul 2026 11:23:00 +0800
Subject: [PATCH] Fix leds active level bug

---
 ex1.buzzer-music/Board/miscdev.c |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/ex1.buzzer-music/Board/miscdev.c b/ex1.buzzer-music/Board/miscdev.c
index e2d294d..e2cf754 100644
--- a/ex1.buzzer-music/Board/miscdev.c
+++ b/ex1.buzzer-music/Board/miscdev.c
@@ -79,7 +79,7 @@
     if( which >= LedMax )
         return ;
 
-    level = status==OFF ? GPIO_PIN_SET : GPIO_PIN_RESET;
+    level = status==ON ? leds[which].active : !leds[which].active;
     HAL_GPIO_WritePin(leds[which].group, leds[which].pin, level);
 }
 
@@ -174,13 +174,15 @@
  *+----------------------+
  */
 
-/* gcc 编译器中的 printf 函数将会调用 __io_putchar() 函数,实现最终的字符打印
- * keil编译器中的 printf 函数将会调用 fputc() 函数,实现最终的字符打印
- * 这里我们定义一个宏 PUTCHAR_PROTOTYPE 来兼容这两个编译器所需要的函数原型;
+/* gcc 编译器的 printf 将会调用 __io_putchar() 函数,实现最终的字符打印
+ * keil编译器的 printf 将会调用 fputc() 函数,实现最终的字符打印
+ * 这里我们定义一个宏 PUTCHAR_PROTOTYPE 来兼容两个编译器所需要的函数原型
+ *
+ * 注意:
+ *  1. Keil5 工程需要勾选:Options for Target -> Target -> Use MicroLIB
+ *  2. Keil5 的编译器 armclang(AC6) 会定义 __GNUC__ 宏,而旧版 armcc(AC5) 则不会
  */
-#if defined(__ARMCC_VERSION) /* MDK ARM Compiler */
-FILE __stdout;
-FILE __stdin;
+#if defined(__ARMCC_VERSION) /*  */
 #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
 #elif defined(__GNUC__) /* GCC */
 #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)

--
Gitblit v1.10.0