- 打卡等级:以坛为家I
 
				- 打卡总天数:236
 
				
				
				- 最近打卡:2025-07-19 05:31:21
 
				  
  
金牌会员 
 
 
	- 积分
 - 1319
 
 
 
 
 | 
 
 
发表于 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); |   
 
 
 
 |