硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3331|回复: 5
收起左侧

[μCGUI] RA8875初始化后屏幕花屏

[复制链接]

29

主题

62

回帖

149

积分

初级会员

积分
149
发表于 2017-1-3 17:53:21 | 显示全部楼层 |阅读模式
void GUI_LCDInit(void)
{
   RST_CRL;
   s_WaitNms(30);
   RST_SET;
   CS_SET;
   WR_SET;
   RD_SET;

    s_CmdWrite(0x88);   
    s_DataWrite(0x0b);
    s_Delay(10000);   
    s_CmdWrite(0x89);        
    s_DataWrite(0x02);     
    s_Delay(10000);

    s_CmdWrite(0x10);  //SYSR   bit[4:3]=00 256 color  bit[2:1]=        00 8bit MPU interface                                                
    s_DataWrite(0x0C); // if 8bit MCU interface         and 65k color display        
    s_Delay(10000);

    //==============        Display Window        640x480 ==================        
    s_CmdWrite(0x04);    //PCLK inverse
    s_DataWrite(0x01);
    s_Delay(10000);

    //Horizontal set
    s_CmdWrite(0x14);//HDWR//Horizontal Display Width Setting Bit[6:0]                  
    s_DataWrite(0x4F);//Horizontal display width(pixels) = (HDWR + 1)*8                  
    s_CmdWrite(0x15); //Horizontal Non-Display Period Fine Tuning Option Register (HNDFTR)
    s_DataWrite(0x05);//Horizontal Non-Display Period Fine Tuning(HNDFT) [3:0]            
    s_CmdWrite(0x16);//HNDR//Horizontal Non-Display Period Bit[4:0]                     
    s_DataWrite(0x0f);//Horizontal Non-Display Period (pixels) = (HNDR + 1)*8            
    s_CmdWrite(0x17);//HSTR//HSYNC Start Position[4:0]                                   
    s_DataWrite(0x01);//HSYNC Start Position(PCLK) = (HSTR + 1)*8                        
    s_CmdWrite(0x18); //HPWR//HSYNC Polarity ,The period width of HSYNC.                  
    s_DataWrite(0x00);//HSYNC Width [4:0]   HSYNC Pulse width(PCLK) = (HPWR + 1)*8  
    //Vertical set      
    s_CmdWrite(0x19); //VDHR0 //Vertical Display Height Bit [7:0]                        
    s_DataWrite(0xdf);//Vertical pixels = VDHR + 1                                       
    s_CmdWrite(0x1A);//VDHR1 //Vertical Display Height Bit [8]                           
    s_DataWrite(0x01);//Vertical pixels = VDHR + 1                                       
    s_CmdWrite(0x1B);//VNDR0 //Vertical Non-Display Period Bit [7:0]                     
    s_DataWrite(0x0A);//Vertical Non-Display area = (VNDR + 1)                           
    s_CmdWrite(0x1C);//VNDR1 //Vertical Non-Display Period Bit [8]                       
    s_DataWrite(0x00);//Vertical Non-Display area = (VNDR + 1)                           
    s_CmdWrite(0x1D);//VSTR0 //VSYNC Start Position[7:0]                                 
    s_DataWrite(0x0E);//VSYNC Start Position(PCLK) = (VSTR + 1)                           
    s_CmdWrite(0x1E);//VSTR1 //VSYNC Start Position[8]                                   
    s_DataWrite(0x00);//VSYNC Start Position(PCLK) = (VSTR + 1)                           
    s_CmdWrite(0x1F);//VPWR //VSYNC Polarity ,VSYNC Pulse Width[6:0]                     
    s_DataWrite(0x01);//VSYNC Pulse Width(PCLK) = (VPWR + 1)                              

   //Active window  set
   //setting active window X
    s_CmdWrite(0x30); //Horizontal Start Point 0 of Active Window (HSAW0)
    s_DataWrite(0x00); //Horizontal Start Point of Active Window [7:0]
    s_CmdWrite(0x31); //Horizontal Start Point 1 of Active Window (HSAW1)           
    s_DataWrite(0x00); //Horizontal Start Point of Active Window [9:8]
    s_CmdWrite(0x34); //Horizontal End Point 0 of Active Window (HEAW0)
    s_DataWrite(0x7f); //Horizontal End Point of Active Window [7:0]
    s_CmdWrite(0x35); //Horizontal End Point 1 of Active Window (HEAW1)           
    s_DataWrite(0x02); //Horizontal End Point of Active Window [9:8]

   //setting active window Y
    s_CmdWrite(0x32); //Vertical Start Point 0 of Active Window (VSAW0)
    s_DataWrite(0x00); //Vertical Start Point of Active Window [7:0]
    s_CmdWrite(0x33); //Vertical Start Point 1 of Active Window (VSAW1)           
    s_DataWrite(0x00); //Vertical Start Point of Active Window [8]
    s_CmdWrite(0x36); //Vertical End Point of Active Window 0 (VEAW0)
    s_DataWrite(0xdf); //Vertical End Point of Active Window [7:0]
    s_CmdWrite(0x37); //Vertical End Point of Active Window 1 (VEAW1)           
    s_DataWrite(0x01); //Vertical End Point of Active Window [8]
           
   /*setting RA8875 display on*/        
    s_CmdWrite(0x01); //        
    s_DataWrite(0x80); //
    s_Delay(10000);
    Active_Window(0,639,0,479); }
如上初始化之后,屏幕花屏,哪位知道问题出在哪里,指点下,多谢
QQ截图20170103165113.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2017-1-4 09:28:31 | 显示全部楼层
你的这个是IO口模拟总线进行通信的吗。
回复

使用道具 举报

29

主题

62

回帖

149

积分

初级会员

积分
149
 楼主| 发表于 2017-1-4 10:36:39 | 显示全部楼层

回 eric2013 的帖子

eric2013:你的这个是IO口模拟总线进行通信的吗。 (2017-01-04 09:28) 
是的,这个是IO口模拟
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106934
QQ
发表于 2017-1-6 07:56:16 | 显示全部楼层
你的这个背光是通过RA8875带的PWM驱动的不,如果是的话,说明你的总线通信没问题的。

另外就是要先读取ID,保证你的总线模拟没有问题。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2020-11-2 19:56:27 | 显示全部楼层
请问解决了吗, 请教解决办法
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2020-11-4 10:10:19 | 显示全部楼层
有雪花屏表示驱动器已经工作了,但是显存数据为乱码,你这里只是开启了显示,没有更新显存数据,你刷个全屏数据看下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-10 12:43 , Processed in 0.222559 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表