对LCD的几个读写数据和寄存器的函数不理解

2019-07-21 00:35发布

不理解的函数如下:
/************************************************************************/
//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(vu16 regval)
{   
regval=regval; //使用-O2优化的时候,必须插入的延时
LCD->LCD_REG=regval;//写入要写的寄存器序号  
}
//写LCD数据
//data:要写入的值
void LCD_WR_DATA(vu16 data)
{  
data=data; //使用-O2优化的时候,必须插入的延时
LCD->LCD_RAM=data;  
}
//读LCD数据
//返回值:读到的值
u16 LCD_RD_DATA(void)
{
vu16 ram; //防止被优化
ram=LCD->LCD_RAM;
return ram;  
}   
//写寄存器
//LCD_Reg:寄存器地址
//LCD_RegValue:要写入的数据
void LCD_WriteReg(u16 LCD_Reg,u16 LCD_RegValue)
{
LCD->LCD_REG = LCD_Reg; //写入要写的寄存器序号  
LCD->LCD_RAM = LCD_RegValue;//写入数据      
}   
//读寄存器
//LCD_Reg:寄存器地址
//返回值:读到的数据
u16 LCD_ReadReg(u16 LCD_Reg)
{   
LCD_WR_REG(LCD_Reg); //写入要读的寄存器序号
delay_us(5);  
return LCD_RD_DATA(); //返回读到的值
}   
/******************************************************************/

问题:
1.在这几函数中,在对变量赋值的时候,具体是如何达到我们控制LCD的目的的?
2.在发送寄存器命令之后,我们是如何知道我们寄存器的参数是被传到了变量LCD->LCD_RAM中?
3.传送到LCD->LCD_RAM的数据又是如何和GRAM挂钩?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
lycreturn
1楼-- · 2019-07-21 05:19
这是fsmc 控制的    我们主要搞懂读写命令和数据就行了
willsmith
2楼-- · 2019-07-21 10:50
回复【2楼】lycreturn:
---------------------------------
我随便往一个变量里边读/写,那么我咋知道我传输的数据去了哪儿?又如何达到我们控制LCD的目的呢,
我们又怎么确定这样就可以达到我们的目的?咱不能人云亦云,人家说这么做,确实是有其原因的,
但咱也需要去整明白啊,要是下次LCD在哪儿出了问题,难道还要再次去求人家么?
干嘛不一次把自己的思路整明白呢?咱做事不能稀里糊涂去做...
正点原子
3楼-- · 2019-07-21 14:07
 精彩回答 2  元偷偷看……
willsmith
4楼-- · 2019-07-21 15:28
 精彩回答 2  元偷偷看……
willsmith
5楼-- · 2019-07-21 21:09
回复【5楼】willsmith:
---------------------------------
原子哥,你咋知道是这种操作方式呢?能透漏透漏么?实在不解,每个函数里边的赋值,其真实的意义何在?
ricefat
6楼-- · 2019-07-21 22:59
回复【6楼】willsmith:
---------------------------------
LCD厂家会发布屏幕初始化代码,同时在主控的datasheet中会给出所有命令的说明和取值,用户根据需要进行编程

一周热门 更多>