一:2.4寸屏幕知识分享:
核心规格 :
分辨率: 240x320 像素 (RGB垂直排列)
显示色深: 最高支持 262K 色 (18位色)
屏幕尺寸: 2.4英寸 对角线
通信接口:
8位并行接口 (重点): 一次传输8个数据位,速度很快,但需要占用较多I/O引脚 (至少8个数据引脚 + 4个控制引脚)
触摸屏: 通常配备 4线电阻式触摸屏,需额外I/O或ADC引脚读取
驱动芯片:
ILI9341: 核心显示驱动芯片
XPT2046: 常见的配套触摸屏控制器芯片
硬件连接注意情况:
电平匹配 (最重要):ILI9341 核心电压为 2.8V-3.3V。如果你使用 5V 单片机(如传统Arduino Uno),强烈建议进行电平转换,否则可能导致显示异常甚至损坏模块。最简单的方法是选用原生3.3V的开发板,或使用逻辑电平转换器。
8 位/16位模式选择 (极易踩坑):许多 ILI9341 模块支持8位和16位两种模式。这通常由模块背面的一个电阻或引脚 (IM0, IM1) 决定。如果模块默认是16位模式而你只连接了8位数据线,屏幕将无法正常工作。务必检查模块文档或原理图,确保其处于8位模式。
触摸屏连接:如果模块带触摸屏,通常有额外的 T_IRQ, T_OUT, T_DIN, T_CS 等引脚。这些引脚需要连接到XPT2046触摸控制器(模块上通常已集成),你只需通过SPI接口与XPT2046通信即可读取触摸坐标二:软件代码:
2.1 LCD写入函数
void LCD_write(u8 HVAL,u8 LVAL)
{
LCD_CS = 0;
LCD_WR = 0;
LCD_DataPortH = HVAL;
LCD_DataPortL = LVAL;
LCD_WR = 1;
LCD_CS = 1;
}2.2 LCD读取函数
u16 LCD_read(void)
{
u16 d;
LCD_CS = 0;
LCD_RD = 0;
delay_us(1); //delay 1 us
d = LCD_DataPortH;
d = (d<<8)|LCD_DataPortL;
LCD_RD = 1;
LCD_CS = 1;
return d;
}2.3 固定框显示
void DrawTestPage(u8 *str)
{
//绘制固定栏up
LCD_Clear(WHITE);
LCD_Fill(0,0,lcddev.width,20,BLUE);
//绘制固定栏down
LCD_Fill(0,lcddev.height-20,lcddev.width,lcddev.height,BLUE);
POINT_COLOR=WHITE;
Gui_StrCenter(0,2,WHITE,BLUE,str,16,1);//居中显示
Gui_StrCenter(0,lcddev.height-18,WHITE,BLUE,"www.EEPW.com",16,1);//居中显示
}2.4主程序显示
void main_test(void)
{
static u16 buf[20] = {0};
static u16 i ;
DrawTestPage("eepw 论坛屏测试程序");
Gui_StrCenter(0,30,RED,BLUE,"keyboard",16,1);//居中显示
Gui_StrCenter(0,120,BLUE,BLUE,"www.EEPW.com",16,1);//居中显示
sprintf((char *)buf,"COUNT:0x%4d",i);
Show_Str(0,96,BLUE,YELLOW,buf,16,1);
i++;
delay_ms(1000);
}三:实物显示
我要赚赏金
