原子老大,上次买了你的几块3.5液晶屏(RM68042),现在正在调试。因为我的需求是横屏显示,上次问了你,说是通过该坐标的方式,现在问题如下:
通过改变void LCD_DrawPoint(u16 x,u16 y)
{
LCD_SetCursor(y,x); //设置光标位置
} 把 LCD_SetCursor(y,x); x,y互换,LCD_SetCursor(u16 Xpos, u16 Ypos)函数里加上Xpos=lcddev.width-1-Xpos; 实现了上面的效果,但是问题是:看到图片下面的201,我本
想显示的是"2013/1/9",现在的情况是横坐标超过320(横屏)就不能显示了,函数void LCD_Display_Dir(u8 dir)里 lcddev.width=480; lcddev.height=320; 或者 lcddev.width=320; lcddev.height=480; 都是出着这样的问题,原子哥,这个坐标到底要不要改成lcddev.width=480; lcddev.height=320;
是不是还有其他地方没有改到?????
if(lcddev.id==0X9341||lcddev.id==0X6804)
{
lcddev.wramcmd=0X2C;
lcddev.setxcmd=0X2A;
lcddev.setycmd=0X2B;
if(lcddev.id==0X6804)
{
lcddev.width=480;
lcddev.height=320;
}
__inline void LCD_SetCursor(u16 Xpos, u16 Ypos)
{
if(lcddev.id==0X9341||lcddev.id==0X6804)
{
LCD_WR_REG(lcddev.setxcmd);
Xpos=lcddev.width-1-Xpos; //加上这一句,不然是“镜像”
LCD_WR_DATA(Xpos>>8);
LCD_WR_DATA(Xpos&0XFF);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(Ypos>>8);
LCD_WR_DATA(Ypos&0XFF);
}else
问题2:背景清屏,我是通过改void LCD_Clear(u16 color)这个函数,结果是能够达到效果,但不知道有没有问题????
void LCD_Clear(u16 color)
{
u32 index=0;
u32 totalpoint=lcddev.width;
totalpoint*=lcddev.height; //得到总点数
LCD_Scan_Dir(U2D_R2L); // 先改变扫描方向,
LCD_SetCursor2(0x00,0x0000); //设置光标位置
LCD_WriteRAM_Prepare(); //开始写入GRAM
for(index=0;index<totalpoint;index++)LCD_WR_DATA(color);
LCD_Scan_Dir(DFT_SCAN_DIR); //清屏之后再改回默认扫描方向
}
问题3:把 LCD_SetCursor(y,x); x,y互换,就能换方向显示,这个是什么原理呢,我一直没想明白????
各位大神,小弟急,在线等,先谢谢大家 |