求助关于LCD显示屏驱动程序例程问题

2019-10-15 04:09发布

本帖最后由 邵少少 于 2017-2-8 09:11 编辑

在对LCD写操作的时候,LCD_WR_REG(U16 data)函数,这个函数往LCD写命令,类似0x29,0x2c这样子的,又要写需要读取或者需要写入数据的 寄存器名称,例如R7等等,我是不明白LCD如何区分这两个数据,命令和 寄存器名称是有重叠的部分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
南有乔木
2019-10-16 11:01
邵少少 发表于 2017-2-8 13:38
非常感谢您回复的这么详细。
这些我明白的。现在是我在例程中注意到写寄存器LCD_WR_REG()函数既写命令, ...

就像例程中的
void LCD_DisplayOn(void)
{                                          
        if(lcddev.id==0X9341||lcddev.id==0X6804||lcddev.id==0X5310||lcddev.id==0X1963)LCD_WR_REG(0X29);        //开启显示
        else if(lcddev.id==0X5510)LCD_WR_REG(0X2900);        //开启显示
        else LCD_WriteReg(0X07,0x0173);                                          //开启显示
}

每种芯片对应的指令及相应功能都在datasheet中给出了,一种芯片,开发商不可能在开发的时候给自己制定两个一模一样指令来控制不同的功能啊。。
你贴的例程R7应该就是0x07这个指令吧。。
LCD_WriteReg()函数包含了写寄存器编号和数据两个参数,写寄存器编号也是一种指令吧。。就是写命令,都是一回事。。不可能重复啊
这是我的理解

一周热门 更多>