初级会员

- 积分
- 158
- 金钱
- 158
- 注册时间
- 2016-7-18
- 在线时间
- 22 小时
|
1金钱
我尝试着让LCD显示一个字符。然后我的程序可以清屏,但不能显示出字符。下面是代码
int main(void)
{
delay_init(168); //延时初始化
Lcd_Init_My(); //液晶初始化
ClearLcd(); //清屏1,这个是从坐标0,0开始的,并显示白色
ClearLcd2(); //清屏2,这个是从坐标100,100开始的并显示红色,但结果屏幕全是红的
LCD_ShowChar(30,40,'I',16,0);//显示字符
LCD_ShowChar(30,70,'L',16,0);
LCD_ShowChar(30,90,'o',16,0);
LCD_ShowChar(30,110,'v',16,0);
LCD_ShowChar(30,130,'e',16,0);
while(1);
}
void ClearLcd()
{
int i;
LCD_SetCursor(0,0);
LCD_WriteRAM_Prepare();
for(i=0;i<xlen*ylen;i++) //xlen和ylen是长宽
LCD->LCD_RAM=White;
}
void ClearLcd2() //之所以设置2个清屏函数是想验证坐标有没有影响。但结果都是全屏幕变色,所以觉得坐标设置不出来
{
int i;
LCD_SetCursor(100,100);
LCD_WriteRAM_Prepare();
for(i=0;i<xlen*ylen;i++)
LCD->LCD_RAM=Red;
}
void LCD_SetCursor(u16 Xpos, u16 Ypos) //设置坐标的函数
{
LCD_WR_REG(0x2A00);
LCD_WR_DATA(Xpos>>8); //我的LCD是5510,这是原子哥上的坐标设置,但我觉得我坐标设置不出来,不知道哪里有问题
LCD_WR_REG(0x2A00+1);
LCD_WR_DATA(Xpos&0XFF);
LCD_WR_REG(0x2B00);
LCD_WR_DATA(Ypos>>8);
LCD_WR_REG(0x2B00+1);
LCD_WR_DATA(Ypos&0XFF);
}
void LCD_WriteRAM_Prepare(void) //准备写GRAM,5510的命令是0X2C00
{
LCD->LCD_REG=0X2C00;
}
因为我的LCD可以在屏幕上显示红色,这说明初始化和写寄存器,写数据没有问题,代码就不贴了,要是需要我在贴。请假一下大家这是啥问题
|
|