/* * @Author: CTW * @Date: 2025-11-07 14:37:14 * @FilePath: \PhoenixSMGT_Testproject\Drivers\TM1617\Drv_TM1617_RGB.h * @note: 从 STM32 HAL 库移植到 AT32F403A,软件模拟时序(GPIO 位翻转) */ #ifndef __DRV_TM1617_RGB_H #define __DRV_TM1617_RGB_H #include #include "at32f403a_407.h" /* TM1617 引脚(GPIO 普通推挽输出) DIO 需要双向(读按键时切输入),CLK/STB 推挽输出 */ #define DIO_PORT GPIOC #define DIO_PIN GPIO_PINS_4 #define CLK_PORT GPIOB #define CLK_PIN GPIO_PINS_0 #define STB_PORT GPIOC #define STB_PIN GPIO_PINS_15 /* 按键状态枚举(仅关注SEG5~SEG8对应按键) */ typedef enum { KEY_MAIN_D, // SEG5对应按键 KEY_MAIN_C, // SEG6对应按键 KEY_MAIN_B, // SEG7对应按键 KEY_MAIN_A, // SEG8对应按键 KEY_NULL } KeyStatusTypeDef; /* RGB颜色宏定义(SEG9=R, SEG10=G, SEG11=B,对应bit0~bit2) */ #define COLOR_R 0x01 // 仅R亮 #define COLOR_G 0x02 // 仅G亮 #define COLOR_B 0x04 // 仅B亮 #define COLOR_YEL 0x03 // R+G(黄) #define COLOR_CYA 0x06 // G+B(青) #define COLOR_PUR 0x05 // R+B(紫) #define COLOR_WHT 0x07 // R+G+B(白) #define COLOR_OFF 0x00 // 全灭 extern uint8_t rgb_color_seq[]; // 颜色流转序列 extern uint8_t color_idx; // 颜色索引 /* --------------------------------------------------------------------------------------------------------- */ void TM1617_GPIO_Init(void); // TM1617 GPIO初始化 uint8_t TM1617_ReadByte(void); // 读1字节数据 void TM1617_WriteByte(uint8_t data); // 写1字节数据(低位先行,CLK上升沿锁存) void TM1617_Clear(void); // 上电清零(避免乱码) void TM1617_Init(void); // TM1617 初始化 extern void TM1617_SetRGB(uint8_t color, uint8_t brightness); // TM1617 初始化 extern KeyStatusTypeDef TM1617_ScanFkey(void); // TM1617 按键扫描 extern void RGB_Breath_Flow(void); // RGB呼吸流转(7色循环) void RGB_Test_On(uint8_t u8Color); // 最小化测试:让RGB灯常亮(白色,最高辉度) #endif