学习原子哥的源码好几年了,分享一下LCD驱动的修改,使用函数指针的形式,更简炼!

2019-07-21 05:22发布

//LCD重要参数集:每增加一种LCD类型均须在 LcdDev[ ] 常量表增加一项!!!
typedef struct  _LCD_DEV_
{
        u16        width;                        //LCD 宽度:==> 在LCD_Display_Dir( ) 设置(初始化)
        u16        height;                        //LCD 高度:==> 在LCD_Display_Dir( ) 设置(初始化)
        u8        xCmd;                        //设置x坐标指令:==> 在LCD_Display_Dir( ) 设置(初始化)
        u8        yCmd;                        //设置y坐标指令:==> 在LCD_Display_Dir( ) 设置(初始化)

        u8        wramCmd;                //开始写gram指令:==> 此值与横屏、竖屏无关
        u8        dirReg;                        //扫描控制寄存器:(初始化)
        u16        dirVal;                        //扫描控制值:(初始化)
        u16        id;                                //LCD ID:==> 在 LCD_Init( ) 设置(初始化)。经测试,我的LCD ID是 0x9320
        void (*FunSetCursor)( u16 Xpos, u16 Ypos );        //设置光标位置函数入口
        //void (*FunInit)( );        //初始化函数入口
} LCD_DEV;           
主要改变了这个结构,这样 "设置光标位置" 等操作不用做判断,速度自然也快了!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。