From c4bf317bee665e8a5381ce78bb300a4474ab2085 Mon Sep 17 00:00:00 2001 From: dgjames <1943357252@qq.com> Date: Fri, 17 Jan 2025 17:42:05 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=B7=B1=E7=9A=84=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=E3=80=81=E9=97=AA=E7=83=81=E5=87=BD=E6=95=B0?= =?UTF-8?q?=EF=BC=88=E4=BC=9A=E5=8D=A1=E5=9C=A8=E9=87=8C=E9=9D=A2=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- board/ports/led_matrix/drv_matrix_led.c | 35 +++++++++++++++- board/ports/led_matrix/drv_matrix_led.h | 3 ++ my_pro/myproject.c | 53 +++++++++++++------------ 3 files changed, 65 insertions(+), 26 deletions(-) diff --git a/board/ports/led_matrix/drv_matrix_led.c b/board/ports/led_matrix/drv_matrix_led.c index ef15e17..e9b99ae 100644 --- a/board/ports/led_matrix/drv_matrix_led.c +++ b/board/ports/led_matrix/drv_matrix_led.c @@ -55,6 +55,12 @@ const RGBColor_TypeDef LT_GREEN = {32, 0, 0}; const RGBColor_TypeDef LT_BLUE = {0, 0, 32}; const RGBColor_TypeDef LT_WHITE = {16, 16, 16}; +const RGBColor_TypeDef LED_OFF = {0, 0, 0}; +const RGBColor_TypeDef LED_ON = {255, 255, 255}; + +//灯处于特定颜色还是闪烁状态 +uint8_t LED_staue[LED_NUM]={0}; + // 灯颜色缓存 RGBColor_TypeDef RGB_Data[LED_NUM] = {0}; @@ -158,7 +164,34 @@ void Set_LEDColor(uint16_t LedId, RGBColor_TypeDef Color) RGB_Data[LedId].R = Color.R; RGB_Data[LedId].B = Color.B; } - +void LED_Set(uint16_t LedId, RGBColor_TypeDef Color) +{ + RGB_Data[LedId].G = Color.G; + RGB_Data[LedId].R = Color.R; + RGB_Data[LedId].B = Color.B; + RGB_Reflash(); +} +void LED_Toggle(uint16_t LedId, RGBColor_TypeDef Color) +{ + while(1) + { + LED_Set(LedId,Color); + rt_thread_mdelay(500); + LED_Set(LedId,LED_OFF); + rt_thread_mdelay(500); + } +} +void LED_LITTLE_TEST(void) +{ + LED_Set(1,LED_RED); + rt_thread_mdelay(4000); + LED_Toggle(1,LED_RED); + rt_thread_mdelay(4000); + LED_Set(1,LED_RED); + rt_thread_mdelay(4000); + LED_Toggle(1,LED_RED); + rt_thread_mdelay(4000); +} /** * @brief TIM发送控制ws2812 * @param[in] 待发送缓存 diff --git a/board/ports/led_matrix/drv_matrix_led.h b/board/ports/led_matrix/drv_matrix_led.h index d506590..d132c68 100644 --- a/board/ports/led_matrix/drv_matrix_led.h +++ b/board/ports/led_matrix/drv_matrix_led.h @@ -15,6 +15,9 @@ extern const RGBColor_TypeDef LED_RED; extern const RGBColor_TypeDef LED_BLUE; extern const RGBColor_TypeDef LED_WHITE; extern void Set_LEDColor(uint16_t LedId, RGBColor_TypeDef Color); +extern void LED_Set(uint16_t LedId, RGBColor_TypeDef Color); +extern void LED_Toggle(uint16_t LedId, RGBColor_TypeDef Color); extern void RGB_Reflash(void); +extern void LED_LITTLE_TEST(void); extern void led_matrix_rst(); #endif diff --git a/my_pro/myproject.c b/my_pro/myproject.c index e67adda..f63b337 100644 --- a/my_pro/myproject.c +++ b/my_pro/myproject.c @@ -439,31 +439,34 @@ void led_matrix_example_entry(void *parameter) // RGB_Show_64(); // 调用RGB灯板显示函数 // rt_thread_mdelay(500); // } - int count = 0; - while (1) - { - for (int i = EXTERN_LED_0; i <= EXTERN_LED_18; i++) - { - switch (count) - { - case 0: - Set_LEDColor(i, LED_RED); - break; - case 1: - Set_LEDColor(i, LED_GREEN); - break; - case 2: - Set_LEDColor(i, LED_BLUE); - break; - default: - return; - break; - } - RGB_Reflash(); - rt_thread_delay(20); - } - count = (count + 1) % 3; - } + + // int count = 0; + // while (1) + // { + // for (int i = EXTERN_LED_0; i <= EXTERN_LED_18; i++) + // { + // switch (count) + // { + // case 0: + // Set_LEDColor(i, LED_RED); + // break; + // case 1: + // Set_LEDColor(i, LED_GREEN); + // break; + // case 2: + // Set_LEDColor(i, LED_BLUE); + // break; + // default: + // return; + // break; + // } + // RGB_Reflash(); + // rt_thread_delay(20); + // } + // count = (count + 1) % 3; + // } + + LED_LITTLE_TEST(); } // /* 用于接收消息的信号量 */ // static struct rt_semaphore rx_sem;