新手上路
- 积分
- 31
- 金钱
- 31
- 注册时间
- 2016-3-3
- 在线时间
- 12 小时
|
1金钱
本帖最后由 ysh2004 于 2016-3-3 20:21 编辑
板子是战舰MINI板,用老程序LCD可以正常使用,但移植UCGUI时竖屏正常,横屏始终有问题,右边有一部分无法显示,看了坛子里面有一篇文章(http://www.openedv.com/posts/list/0/43393.htm),原子哥建议用最新版的程序,我用下了最新的“精英板 资料盘(A盘)\4,程序源码\实验13 TFTLCD显示实验”里面的程序,LCD.C是V2.9 20141130版,修改了IO地址,在LCD.h里面改好了分辨率: //LCD分辨率设置
#define SSD_HOR_RESOLUTION 240 //LCD水平分辨率
#define SSD_VER_RESOLUTION 320 //LCD垂直分辨率
为什么LCD没有反应,LCD是好的,LCD的ID是0x8989,检查源码后发现LCD_Init()里面居然没有0x8989的初始化程序,从老程序里面复制代码手动加上去,加入的代码如下:
}else if(lcddev.id==0X8989)
{
LCD_WriteReg(0x0000,0x0001);//打开晶振
LCD_WriteReg(0x0003,0xA8A4);//0xA8A4
LCD_WriteReg(0x000C,0x0000);
LCD_WriteReg(0x000D,0x080C);
LCD_WriteReg(0x000E,0x2B00);
LCD_WriteReg(0x001E,0x00B0);
LCD_WriteReg(0x0001,0x2B3F);//驱动输出控制320*240 0x6B3F
LCD_WriteReg(0x0002,0x0600);
LCD_WriteReg(0x0010,0x0000);
LCD_WriteReg(0x0011,0x6078); //定义数据格式 16位色 横屏 0x6058
LCD_WriteReg(0x0005,0x0000);
LCD_WriteReg(0x0006,0x0000);
LCD_WriteReg(0x0016,0xEF1C);
LCD_WriteReg(0x0017,0x0003);
LCD_WriteReg(0x0007,0x0233); //0x0233
LCD_WriteReg(0x000B,0x0000);
LCD_WriteReg(0x000F,0x0000); //扫描开始地址
LCD_WriteReg(0x0041,0x0000);
LCD_WriteReg(0x0042,0x0000);
LCD_WriteReg(0x0048,0x0000);
LCD_WriteReg(0x0049,0x013F);
LCD_WriteReg(0x004A,0x0000);
LCD_WriteReg(0x004B,0x0000);
LCD_WriteReg(0x0044,0xEF00);
LCD_WriteReg(0x0045,0x0000);
LCD_WriteReg(0x0046,0x013F);
LCD_WriteReg(0x0030,0x0707);
LCD_WriteReg(0x0031,0x0204);
LCD_WriteReg(0x0032,0x0204);
LCD_WriteReg(0x0033,0x0502);
LCD_WriteReg(0x0034,0x0507);
LCD_WriteReg(0x0035,0x0204);
LCD_WriteReg(0x0036,0x0204);
LCD_WriteReg(0x0037,0x0502);
LCD_WriteReg(0x003A,0x0302);
LCD_WriteReg(0x003B,0x0302);
LCD_WriteReg(0x0023,0x0000);
LCD_WriteReg(0x0024,0x0000);
LCD_WriteReg(0x0025,0x8000);
LCD_WriteReg(0x004f,0); //行首址0
LCD_WriteReg(0x004e,0); //列首址0
}
然后屏幕有了显示,背景也在自动变色,只是文字显示是乱码,背景在自动切换的时候,发现是斜着刷屏的,这是BUG吗?原子哥,还是故意为之啊,要抛弃ID为8989的屏吗,怎么改进,改好后移植UCGUI,还会出现以前的问题吗?@正点原子
|
|