Files
2026-04-23 13:49:53 +08:00

100 lines
3.2 KiB
C

#ifndef ____HDL_LCD_H_
#define ____HDL_LCD_H_
#include "hc32_ll.h"
#include "hdl_clk.h"
#include "lvgl.h"
/* lcd刷屏定时器处理 */
#define LCD_TIM_UINT CM_TMR0_1
#define LCD_TIM_CLK FCG2_PERIPH_TMR0_1
#define LCD_TIM_CH TMR0_CH_B
#define LCD_TIM_TRIG_CH AOS_TMR0
#define LCD_TIM_CH_INT TMR0_INT_CMP_B
#define LCD_TIM_CH_FLAG TMR0_FLAG_CMP_B
#define LCD_TIM_INT_SRC INT_SRC_TMR0_1_CMP_B
#define LCD_TIM_IRQn INT007_IRQn
#define LCD_TIME_CMP_VALUE (1563)
#define USE_HORIZONTAL 0 //设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏
#define LCD_W 240
#define LCD_H 240
#define LCD_SPI_UINT CM_SPI3
#define LCD_SPI_CLK FCG1_PERIPH_SPI3
#define LCD_SPI_TX_EVT_SRC EVT_SRC_SPI3_SPTI
#define LCD_SCL_PORT GPIO_PORT_B
#define LCD_SCL_PIN GPIO_PIN_07
#define LCD_SCL_FUNC GPIO_FUNC_43
#define LCD_SDA_PORT GPIO_PORT_B
#define LCD_SDA_PIN GPIO_PIN_06
#define LCD_SDA_FUNC GPIO_FUNC_40
#define LCD_DMA_UNIT CM_DMA1
#define LCD_DMA_CLK (FCG0_PERIPH_DMA1 | FCG0_PERIPH_AOS)
#define LCD_DMA_TX_CH DMA_CH0
#define LCD_DMA_TX_TRIG_CH AOS_DMA1_0
#define LCD_DMA_TX_INT_CH DMA_INT_TC_CH0
#define LCD_DMA_TX_INT_SRC INT_SRC_DMA1_TC0
#define LCD_DMA_TX_IRQ_NUM INT006_IRQn
#define LCD_RES_PORT GPIO_PORT_B
#define LCD_RES_PIN GPIO_PIN_05
#define LCD_DC_PORT GPIO_PORT_B
#define LCD_DC_PIN GPIO_PIN_04
#define LCD_RES_SET() GPIO_SetPins(LCD_RES_PORT, LCD_RES_PIN)
#define LCD_RES_CLR() GPIO_ResetPins(LCD_RES_PORT, LCD_RES_PIN)
#define LCD_DC_SET() GPIO_SetPins(LCD_DC_PORT, LCD_DC_PIN)
#define LCD_DC_CLR() GPIO_ResetPins(LCD_DC_PORT, LCD_DC_PIN)
#define LCD_SCLK_Clr() GPIO_ResetPins(GPIO_PORT_B,GPIO_PIN_07)//SCL=SCLK
#define LCD_SCLK_Set() GPIO_SetPins(GPIO_PORT_B,GPIO_PIN_07)
#define LCD_MOSI_Clr() GPIO_ResetPins(GPIO_PORT_B,GPIO_PIN_06)//SDA=MOSI
#define LCD_MOSI_Set() GPIO_SetPins(GPIO_PORT_B,GPIO_PIN_06)
//画笔颜色
#define WHITE 0xFFFF
#define BLACK 0x0000
#define BLUE 0x001F
#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 //浅棕蓝色(选择条目的反色)
typedef void (*lcd_dma_callback_t)(void);
typedef void (*lcd_timer_callback_t)(void);
void hdl_lcd_init(void);
void hdl_lcd_send(uint8_t *data, uint16_t len);
void LCD_Address_Set(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2);
void LCD_DrawPoint(uint16_t x,uint16_t y,uint16_t color);
void hdl_lcd_fill(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2, uint8_t *color);
void hdl_lcd_dma_callback_register(lcd_dma_callback_t pCBS);
void hdl_lcd_timer_callback_register(lcd_timer_callback_t pCBS);
#endif