9.19 FSMC驱动TFTLCD

2019-07-20 11:54发布

    TFTLCD点亮实验中,我想知道那个例子程序里面的逻辑究竟是什么写的!!!
     我一直想自己写一个完整的代码实现一遍,但是无从下手!!!
     就是我想知道第一步应该干什么,为什么要这么做我不是非常清楚!!

    例子里面的读LCD的ID是怎么读的,这个我有点不是非常清楚。我觉得读ID的时候,你都没有将ID保存进去,怎么读的进来
    就算是厂家写进去了,但是为什么写一个结构体一读就能读出来呢?
     以下这个结构体,整个例程中我都没有找到将数据写进去只有读出来,

   //LCD重要参数集
typedef struct  
{                                                                                    
        u16 width;                        //LCD 宽度
        u16 height;                        //LCD 高度
        u16 id;                                //LCD ID
        u8  dir;                        //横屏还是竖屏控制:0,竖屏;1,横屏。       
        u16        wramcmd;                //开始写gram指令
        u16  setxcmd;                //设置x坐标指令
        u16  setycmd;                //设置y坐标指令
}_lcd_dev;


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
MrXie
1楼-- · 2019-07-20 12:01
下面红 {MOD}的代码不都是读ID的指令嘛
if(lcddev.id<0XFF||lcddev.id==0XFFFF||lcddev.id==0X9300)
        {               
                LCD_WR_REG(0XD3);                                  
                lcddev.id=LCD_RD_DATA();       
                lcddev.id=LCD_RD_DATA();
                  lcddev.id=LCD_RD_DATA();                                                             
                lcddev.id<<=8;
                lcddev.id|=LCD_RD_DATA();                                    
                if(lcddev.id!=0X9341)               
                {       
                        LCD_WR_REG(0XBF);                                  
                        lcddev.id=LCD_RD_DATA();
                         lcddev.id=LCD_RD_DATA();                    
                         lcddev.id=LCD_RD_DATA();                          
                          lcddev.id=LCD_RD_DATA();       
                        lcddev.id<<=8;
                          lcddev.id|=LCD_RD_DATA();       
                        if(lcddev.id!=0X6804)               
                        {
                                LCD_WR_REG(0XD4);                                  
                                lcddev.id=LCD_RD_DATA();
                                lcddev.id=LCD_RD_DATA();
                                lcddev.id=LCD_RD_DATA();
                                lcddev.id<<=8;         
                                lcddev.id|=LCD_RD_DATA();       
                                if(lcddev.id!=0X5310)       
                                {
                                        LCD_WR_REG(0XDA00);       
                                        lcddev.id=LCD_RD_DATA();                 
                                        LCD_WR_REG(0XDB00);
                                        lcddev.id=LCD_RD_DATA();       
                                        lcddev.id<<=8;       
                                        LCD_WR_REG(0XDC00);       
                                        lcddev.id|=LCD_RD_DATA();               
                                        if(lcddev.id==0x8000)lcddev.id=0x5510;
                                        if(lcddev.id!=0X5510)
                                        {
                                                LCD_WR_REG(0XA1);
                                                lcddev.id=LCD_RD_DATA();
                                                lcddev.id=LCD_RD_DATA();       
                                                lcddev.id<<=8;         
                                                lcddev.id|=LCD_RD_DATA();       
                                                if(lcddev.id==0X5761)lcddev.id=0X1963;
                                        }
                                }
                        }
                }         
        }
bbq
2楼-- · 2019-07-20 12:37
有没有人帮帮忙说一个大概!!!多谢各位大哥!
MrXie
3楼-- · 2019-07-20 13:59
 精彩回答 2  元偷偷看……
bbq
4楼-- · 2019-07-20 15:44
本帖最后由 bbq 于 2017-9-19 15:31 编辑
MrXie 发表于 2017-9-19 15:06
我的是407的板,结构体里面的数值全在这个函数void LCD_Display_Dir(u8 dir)里面的赋值。

好的 我去查看!我已经看了,我也是407的,但是ID是没有赋值的!
fylongyin
5楼-- · 2019-07-20 19:41
 精彩回答 2  元偷偷看……
MrXie
6楼-- · 2019-07-20 20:51
 精彩回答 2  元偷偷看……

一周热门 更多>