我用的是F103的板子,配的应该是2.8寸lcd屏(是电阻触摸吧?),控制器读出来是9341; 看了例程很久,没搞懂横竖屏之间的转换原理,应该就是下面这个函数吧,怎么就交换了一下width,height(其他什么都没变!!见红 {MOD}字体部分)就神奇地变成横向显示了(实测过了),但是横向显示时字体明明转了90度哦!!!请问这到底怎么实现的啊
void LCD_Display_Dir(u8 dir)
{
if(dir==0) //竖屏
{
lcddev.dir=0; //竖屏
lcddev.width=240;
lcddev.height=320;
if(lcddev.id==0X9341||lcddev.id==0X6804||lcddev.id==0X5310)
{
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
if(lcddev.id==0X6804||lcddev.id==0X5310)
{
lcddev.width=320;
lcddev.height=480;
}
}else if(lcddev.id==0x5510)
{
lcddev.wramcmd=0X2C00;
lcddev.setxcmd=0X2A00;
lcddev.setycmd=0X2B00;
lcddev.width=480;
lcddev.height=800;
}else if(lcddev.id==0X1963)
{
lcddev.wramcmd=0X2C; //设置写入GRAM的指令
lcddev.setxcmd=0X2B; //设置写X坐标指令
lcddev.setycmd=0X2A; //设置写Y坐标指令
lcddev.width=480; //设置宽度480
lcddev.height=800; //设置高度800
}else
{
lcddev.wramcmd=0X22;
lcddev.setxcmd=0X20;
lcddev.setycmd=0X21;
}
}else //横屏
{
lcddev.dir=1; //横屏
lcddev.width=320;
lcddev.height=240;
if(lcddev.id==0X9341||lcddev.id==0X5310)
{
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
}else if(lcddev.id==0X6804)
{
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2B;
lcddev.setycmd=0X2A;
}else if(lcddev.id==0x5510)
{
lcddev.wramcmd=0X2C00;
lcddev.setxcmd=0X2A00;
lcddev.setycmd=0X2B00;
lcddev.width=800;
lcddev.height=480;
}else if(lcddev.id==0X1963)
{
lcddev.wramcmd=0X2C; //设置写入GRAM的指令
lcddev.setxcmd=0X2A; //设置写X坐标指令
lcddev.setycmd=0X2B; //设置写Y坐标指令
lcddev.width=800; //设置宽度800
lcddev.height=480; //设置高度480
}else
{
lcddev.wramcmd=0X22;
lcddev.setxcmd=0X21;
lcddev.setycmd=0X20;
}
if(lcddev.id==0X6804||lcddev.id==0X5310)
{
lcddev.width=480;
lcddev.height=320;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2,改X,Y坐标范围(就是交换长宽)
3,改坐标设置指令(调转X,Y)
实现这三步,就可以完成横竖屏切换
一周热门 更多>