/* * @Author: CTW * @Date: 2025-11-07 14:37:14 * @FilePath: \PhoenixSMGT_Testproject\Drivers\LCD_ILI9341\Drv_ILI9341_Lcd_Init.h */ #ifndef __DRV_ILI9341_LCD_INIT_H #define __DRV_ILI9341_LCD_INIT_H #include "includes.h" //#include "spi.h" #define USE_HORIZONTAL 0 //设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏 #if USE_HORIZONTAL==0||USE_HORIZONTAL==1 #define LCD_W 240 #define LCD_H 320 #else #define LCD_W 320 #define LCD_H 240 #endif //电阻屏芯片连接引脚 // SPI2引脚(复用功能) #define LCD_SCK_PIN GPIO_PINS_13 #define LCD_SCK_PORT GPIOB #define LCD_MOSI_PIN GPIO_PINS_15 #define LCD_MOSI_PORT GPIOB #define LCD_MISO_PIN GPIO_PINS_14 #define LCD_MISO_PORT GPIOB #define LCD_NSS_PIN GPIO_PINS_12 #define LCD_NSS_PORT GPIOB // LCD控制引脚 #define LCD_DC_PIN GPIO_PINS_8 // TFT_RS #define LCD_DC_PORT GPIOA #define LCD_BLK_PIN GPIO_PINS_9 // TFT_BL #define LCD_BLK_PORT GPIOC #define LCD_RES_PIN GPIO_PINS_10 // TFT_RESET #define LCD_RES_PORT GPIOA // SPI句柄(使用SPI2) //extern SPI_HandleTypeDef hspi2; // 引脚电平操作宏 #define LCD_CS_Clr() HAL_GPIO_WritePin(LCD_NSS_PORT, LCD_NSS_PIN, GPIO_PIN_RESET) #define LCD_CS_Set() HAL_GPIO_WritePin(LCD_NSS_PORT, LCD_NSS_PIN, GPIO_PIN_SET) #define LCD_DC_Clr() HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_RESET) #define LCD_DC_Set() HAL_GPIO_WritePin(LCD_DC_PORT, LCD_DC_PIN, GPIO_PIN_SET) #define LCD_BLK_Clr() HAL_GPIO_WritePin(LCD_BLK_PORT, LCD_BLK_PIN, GPIO_PIN_RESET) #define LCD_BLK_Set() HAL_GPIO_WritePin(LCD_BLK_PORT, LCD_BLK_PIN, GPIO_PIN_SET) #define LCD_RES_Clr() HAL_GPIO_WritePin(LCD_RES_PORT, LCD_RES_PIN, GPIO_PIN_RESET) #define LCD_RES_Set() HAL_GPIO_WritePin(LCD_RES_PORT, LCD_RES_PIN, GPIO_PIN_SET) //画笔颜色 #define WHITE 0xFFFF #define BLACK 0x0000 #define BLUE 0x001F #define COLOR_PRIMARY 0x1B9F // #1D73FF MiSans UI 主色 #define COLOR_GRAD_START 0x039D // #003AEE #define COLOR_GRAD_MID 0x2A5A // #354FD6 #define COLOR_GRAD_END 0x4B1F // #5561F8 #define COLOR_BG_START 0x0849 // #0E1537 #define COLOR_BG_END 0x3189 // #2F3647 #define COLOR_MIXER_RED 0xFB2D // #F85E4B #define COLOR_MIXER_ORANGE 0xFD26 // #F59C2C #define COLOR_MIXER_YELLOW 0xFF6E // #F3D939 #define COLOR_MIXER_GREEN 0x071F // #13E17F #define BRED 0XF81F #define GRED 0XFFE0 #define GBLUE 0X07FF #define RED 0xF800 #define MAGENTA 0xF81F #define GREEN 0x07E0 #define CYAN 0x7FFF #define YELLOW 0xFFE0 #define BROWN 0XBC40 //棕色 #define BRRED 0XFC07 //棕红色 #define GRAY 0X8430 //灰色 #define DARKBLUE 0X01CF //深蓝色 #define LIGHTBLUE 0X7D7C //浅蓝色 #define GRAYBLUE 0X5458 //灰蓝色 #define LIGHTGREEN 0X841F //浅绿色 #define LGRAY 0XC618 //浅灰色(PANNEL),窗体背景色 #define LGRAYBLUE 0XA651 //浅灰蓝色(中间层颜色) #define LBBLUE 0X2B12 //浅棕蓝色(选择条目的反色) #define DARKLGRAY 0x5AEB/*0x2988*//*0x1926*//*0x252E*//*0X2B12*/ #define BUTTON_COLOR /*0x5AEB*/BLACK #define START_COLOR COLOR_GRAD_START #define END_COLOR COLOR_GRAD_END extern void LCD_GPIO_Init(void); //初始化GPIO extern void LCD_WR_DATA8(uint8_t data); //写入一个字节 extern void LCD_WR_DATA16(uint16_t data); //写入两个字节 extern void LCD_WR_REG(uint8_t reg); //写入一个指令 extern void LCD_SetWindow(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2); //设置坐标函数 extern void LCD_Init(void); //LCD初始化 extern void LCD_SPI_DMA_Send(const uint8_t *data, uint32_t len); //SPI2 DMA批量发送 extern void LCD_DrawChevron_Right(uint16_t x, uint16_t y, uint8_t size, uint8_t thick, uint16_t color); //向右空心尖括号 // 渐变背景文字显示(先画垂直渐变底,再叠加文字笔画) extern uint32_t LCD_ShowChinese_AutoAlign_Gradient(uint16_t x1, uint16_t x2, uint16_t y, const uint8_t *p, uint8_t align, uint16_t fc, uint16_t color_top, uint16_t color_bottom, uint8_t size); extern uint16_t LCD_ShowString_AutoAlign_Gradient(uint16_t x1, uint16_t x2, uint16_t y, const uint8_t *p, uint8_t align, uint16_t fc, uint16_t color_top, uint16_t color_bottom, uint8_t size); #endif