打印

STM32 FSMC 驱动ILI9486L TFT无法刷屏

[复制链接]
9422|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qifan|  楼主 | 2013-5-11 13:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在红牛开发板的ILI9320 TFT驱动的基础上改的这个ILI9486L 3.5寸480*320的TFT 使用的是FSMC驱动,现在可以读出ID,向一些状态寄存器里写数据,在另外的读状态寄存器可以正确读出我写入的数据,但是为什么不能刷屏,初始化完后,屏幕没有变化,一直是白色
请大神指导啊,非常感谢
沙发
hyq19921011| | 2013-8-19 15:52 | 只看该作者
应该是设置坐标的函数有问题

使用特权

评论回复
板凳
hyq19921011| | 2013-8-19 15:52 | 只看该作者
void LCD_Clear(uint16_t Color)
{
  uint32_t index = 0;
  
  LCD_SetCursor(0,0); //320*480
  LCD_WR_REG(0x2C); /*¿ªÊ¼Ð´GRAM */
  for(index = 0; index < (320*480); index++)
  {
    LCD_WR_DATA(Color);
  }  
}

使用特权

评论回复
地板
trumpxp| | 2013-8-19 19:04 | 只看该作者
坐标函数的问题   我是这么理解的  不知道诸位的意思

使用特权

评论回复
5
a895176463| | 2014-6-13 14:47 | 只看该作者
你好,我最近也在驱动ILI9486L ,可是初始化一直不成功。能否把你的ILI9486的代码上传给我参考一下?谢谢

使用特权

评论回复
6
星火燎原| | 2014-6-16 10:47 | 只看该作者
void LCD_Init(void)
{                                                                                          
        LCD_InitFSMC();
                         
        delay_ms(50); // delay 50 ms
        LCD_WriteReg(0x0000,0x0001);
        delay_ms(50); // delay 50 ms

         //尝试9486 ID的读取               
        LCD_WR_REG(0XD3);                                  
        LCD_RD_DATA();                                 //dummy read        
        LCD_RD_DATA();                       //读到0X00
        lcddev.id=LCD_RD_DATA();           //读取94                                                                  
        lcddev.id<<=8;
        lcddev.id|=LCD_RD_DATA();          //读取86

        /* Exit sleep mode */
        LCD_WR_REG(0x0011);       
        /* Wait five milliseconds */
        delay_ms(5); // delay 5 ms
        /* Enter normal mode */
        LCD_WR_REG(0x0013);
        /* Power Setting */
        LCD_WR_REG(0x00d0);
        LCD_WR_DATA(0x0007);          //1.0 * Vci
        LCD_WR_DATA(0x0041);
        LCD_WR_DATA(0x0018);
        /* Vcom control */
        LCD_WR_REG(0x00d1);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x000a);
        LCD_WR_DATA(0x0010);
        /* Power setting for normal mode */
        LCD_WR_REG(0x00d2);
        LCD_WR_DATA(0x0001);//Gramma driver amplifer and source driver amplifer
        LCD_WR_DATA(0x0013);
        /* Panel driving setting */
        LCD_WR_REG(0x00c0);
        LCD_WR_DATA(0x0010);
        LCD_WR_DATA(0x003b);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x0002);
        LCD_WR_DATA(0x0011);
        /* Display timing setting for normal mode */
        LCD_WR_REG(0x00c1);
        LCD_WR_DATA(0x0010);
        LCD_WR_DATA(0x0013);
        LCD_WR_DATA(0x0088);
        /* Frame rate and inversion control */
        LCD_WR_REG(0x00c5);
        LCD_WR_DATA(0x0002);
        /* Gramma setting */
        LCD_WR_REG(0x00c8);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x0037);
        LCD_WR_DATA(0x0025);
        LCD_WR_DATA(0x0006);
        LCD_WR_DATA(0x0004);
        LCD_WR_DATA(0x001e);
        LCD_WR_DATA(0x0026);
        LCD_WR_DATA(0x0042);
        LCD_WR_DATA(0x0077);
        LCD_WR_DATA(0x0044);
        LCD_WR_DATA(0x000f);
        LCD_WR_DATA(0x0012);
        /*  */
        LCD_WR_REG(0x00f3);
        LCD_WR_DATA(0x0040);
        LCD_WR_DATA(0x000a);
        /*  */
        LCD_WR_REG(0x00f6);
        LCD_WR_DATA(0x0080);
       
        LCD_WR_REG(0x00f7);
        LCD_WR_DATA(0x0080);
        /* Set address mode */
        LCD_WR_REG(0x0036);
        LCD_WR_DATA(0x0008);
        /* Set pixel format */
        LCD_WR_REG(0x003a);
        LCD_WR_DATA(0x0055);

        LCD_WR_REG(0x0021);
        /* Set column address */
        LCD_WR_REG(0x002a);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x0001);
        LCD_WR_DATA(0x003f);
        /* Set page address */
        LCD_WR_REG(0x002b);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x0000);
        LCD_WR_DATA(0x0001);
        LCD_WR_DATA(0x00df);
        /* Delay */
        delay_ms(120); // delay 120 ms
        /* Set display on */
        LCD_WR_REG(0x0029);
        /* Write memory start */
        LCD_WR_REG(0x002c);

//        LCD_Display_Dir(1);                         //默认为横屏
        LCD_LED=1;                                        //点亮背光
        LCD_Clear(BLACK);
}  
这个我试过可以显示

使用特权

评论回复
7
星火燎原| | 2014-6-16 10:50 | 只看该作者
但是横屏我还没搞出来,你们试试,看横屏是不是还有那没设好。
横屏设为
/* Set address mode */
        LCD_WR_REG(0x0036);
        LCD_WR_DATA(0x00e8);
只有240的宽度,是不是还没有哪些寄存器没设好?

使用特权

评论回复
8
luozuoyong| | 2014-6-16 11:11 | 只看该作者
这个我有用STM32F407的SPI驱动的程序!

为了省线!速度要求不高!

使用特权

评论回复
9
icecut| | 2014-6-16 11:50 | 只看该作者
如果寄存器读写没问题的话,就是对显示芯片理解不到位.
1.找卖屏的给你例程.
2.对着手册去看代码.一步一步验证.

使用特权

评论回复
10
w6850916| | 2015-1-28 16:51 | 只看该作者
a895176463 发表于 2014-6-13 14:47
你好,我最近也在驱动ILI9486L ,可是初始化一直不成功。能否把你的ILI9486的代码上传给我参考一下?谢谢 ...

你好,你的驱动9486L搞出来了没,代码能否参考下?邮箱:609475897@qq.com,谢谢

使用特权

评论回复
11
361640508| | 2015-12-13 13:44 | 只看该作者
你好,你的问题解决了么,  我也出现不能刷屏的现象。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

1

粉丝