- 打卡等级:以坛为家I
- 打卡总天数:220
- 最近打卡:2025-05-01 18:20:12
金牌会员
- 积分
- 1132
|
发表于 2025-1-14 21:17:40
|
显示全部楼层
1. 引脚这个东西比较多,也不用记,大概有个印象就行。
2. 我们看下官方的例子是咋写的:
2.1 官方给了4个c文件,分别是hardware里的lcd.c, system 里的sys.c , user里的gui.c , test.c, main.c
2.2 我们认为有3个模块。一个是hardware,一个是system, 一个是user。
2.3 hardware 主要对硬件的读写。 system 就是一个延时,用来保证读写的时机。 user其实就属于业务了,比如我想画什么样的几何图形。
3. 通过对模块分析以后,我们就知道重点就在hardware里了。接下来看hardware里写了什么。
3.1 主要的功能也就是下面这些:
typedef struct
{
u16 width;
u16 height;
u16 id;
u8 dir;
u16 wramcmd;
u16 rramcmd;
u16 setxcmd;
u16 setycmd;
}_lcd_dev;
void LCD_Init(void);
void LCD_Clear(u16 Color);
void LCD_write(u8 HVAL,u8 LVAL);
u16 LCD_read(void);
void LCD_WR_DATA(u16 Data);
u16 LCD_RD_DATA(void);
void LCD_WR_REG(u16 Reg);
void LCD_SetCursor(u16 Xpos, u16 Ypos);//ÉèÖùâ±êλÖÃ
void LCD_SetWindows(u16 xStar, u16 yStar,u16 xEnd,u16 yEnd);//ÉèÖÃÏÔʾ´°¿Ú
void LCD_DrawPoint(u16 x,u16 y);//»µã
u16 LCD_ReadPoint(u16 x,u16 y);
void LCD_WriteRAM_Prepare(void);
void LCD_ReadRAM_Prepare(void);
void LCD_direction(u8 direction );
void LCD_WR_DATA_16Bit(u16 Data);
u16 Lcd_RD_DATA_16Bit(void);
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue);
void LCD_ReadReg(u16 LCD_Reg,u8 *Rval,int n);
u16 LCD_Read_ID(void);
u16 Color_To_565(u8 r, u8 g, u8 b); |
|