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

2019-10-15 04:09发布

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

在对LCD写操作的时候,LCD_WR_REG(U16 data)函数,这个函数往LCD写命令,类似0x29,0x2c这样子的,又要写需要读取或者需要写入数据的 寄存器名称,例如R7等等,我是不明白LCD如何区分这两个数据,命令和 寄存器名称是有重叠的部分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
南有乔木
1楼-- · 2019-10-15 05:40
0x2c不是地址,是命令、指令,指令和地址完全不是一回事。是MCU向控制芯片发送的要求,用来返回相应功能状态。
LCD_ReadReg(0x0000)里调用LCD_WR_REG(0x0000),是为了兼容其他芯片。你可以打开开发板资料->硬件资料->液晶资料,看到不同型号的液晶。lcddev.id = LCD_ReadReg(0x0000); 这个语句的作用就是读取其他芯片的ID,例如9325。当写入0x0000时,读出的就是机器码。。

因为原子的程序为了提高兼容性,大大降低了可读性。你如果用的是9341芯片,这些语句完全可以删去。

每个指令对应的内容对同一款芯片肯定是独一无二的。
wxyd2012
2楼-- · 2019-10-15 11:03
 精彩回答 2  元偷偷看……
南有乔木
3楼-- · 2019-10-15 12:17
LCD_WR_REG()函数值负责写寄存器,函数是由 8080并口时序电路,读寄存器命令定义的。。
所以写类似0x29指令的话采用 LCD_WR_REG()函数,写数据和读数据分别由别的函数实现。。

南有乔木
4楼-- · 2019-10-15 14:08
你圈出来的两个函数定义不一样,具体怎么定义的,你可以参考中文参考手册。
RD WR CS各引脚电压为实现不同电压该怎么定义
邵少少
5楼-- · 2019-10-15 17:26
南有乔木 发表于 2017-2-8 12:00
LCD_WR_REG()函数值负责写寄存器,函数是由 8080并口时序电路,读寄存器命令定义的。。
所以写类似0x29指 ...

非常感谢你的回复。我还是不理解。比如附件图片里的LCD_WriteReg(u16 LCD_Reg,u16 LCD_RegValue)也是要将形参寄存器变量使用LCD_WR_REG函数写入LCD,LCD怎么知道你写入的是寄存器名还是命令号?
邵少少
6楼-- · 2019-10-15 22:10
wxyd2012 发表于 2017-2-8 11:47
你要看函数具体内容是什么,有一个RS RD和WR引脚控制是读写数据还是命令

我知道的,但是就是不理解为什么LCD_WR_REG()函数在写入命令时(比如0x29),lcd怎么来区分你写入的是命令还是寄存器名称

一周热门 更多>