1.typedef struct{
vu16 LCD_REG;这个值是代表寄存器的序号吗?
vu16 LCD_RAM;这个值是代表寄存器的内容吗?
} LCD_TypeDef;
2.//写寄存器函数
//regval:寄存器值
void LCD_WR_REG(u16 regval)
{
LCD->LCD_REG=regval; //写入要写的寄存器序号
}
//写 LCD 数据
//data:要写入的值
void LCD_WR_DATA(u16 data)
{
LCD->LCD_RAM=data;
}
与
//写寄存器
//LCD_Reg:寄存器地址
//LCD_RegValue:要写入的数据
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue)
{
LCD->LCD_REG = LCD_Reg; //写入要写的寄存器序号
LCD->LCD_RAM = LCD_RegValue; //写入数据
}
这两组函数作用一样吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
//regval:寄存器值
void LCD_WR_REG(u16 regval)
{
LCD->LCD_REG=regval; //写入要写的寄存器序号
}
这个寄存器序号是谁的寄存器啊?怎样理解这个寄存器?
这个就说来话长了。简单点说cpu通过fsmc控制lcd,而LCD->REG对应的地址刚好是nor/psram的地址,然而stm32内部是没有这个东西的,所以需要外接。此时stm32的引脚充当地址线、数据线。想往sram芯片的1地址写数据,则与地址线相应的gpio就会输出0x0001,也就是说有某一个gpio输出的是高电平,而其它的输出低电平.LCD->REG对应的地址(看原理图)刚好是lcd 的数据、命令控制线。大概就是这么回事,具体的多看几遍书就能理解了。 时间太久记不清了,我都是复制黏贴用的。模糊的记得,你问的这个问题谁的寄存器都不是,只是对应ssd1963的一条控制线,高电平表示输入的是命令,低电平表示输入的是参数。
一周热门 更多>