不理解的函数如下:
/************************************************************************/
//写寄存器函数
//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挂钩?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
我随便往一个变量里边读/写,那么我咋知道我传输的数据去了哪儿?又如何达到我们控制LCD的目的呢,
我们又怎么确定这样就可以达到我们的目的?咱不能人云亦云,人家说这么做,确实是有其原因的,
但咱也需要去整明白啊,要是下次LCD在哪儿出了问题,难道还要再次去求人家么?
干嘛不一次把自己的思路整明白呢?咱做事不能稀里糊涂去做...
---------------------------------
原子哥,你咋知道是这种操作方式呢?能透漏透漏么?实在不解,每个函数里边的赋值,其真实的意义何在?
---------------------------------
LCD厂家会发布屏幕初始化代码,同时在主控的datasheet中会给出所有命令的说明和取值,用户根据需要进行编程
一周热门 更多>