|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2010-11-28 16:06:12
|
显示全部楼层
刚才又试了一下,必须读写两次,才能正确显示,这是为什么呢
if((7==stopbit)|(8==stopbit)) //为什么这个程序要重复两次才能正常
{ FIFO_CS_H();
//FIFO_RRST_L();
//LCD_CS_L();
for(x=0;x<100;x++)
{
for(y=0;y<100;y++)
{
LCD_WR_REG(0x0020,x);//Lcd光标GRAM水平起始位置
LCD_WR_REG(0x0021,y+120); //Lcd光标垂直GRAM起始位置
LCD_WR_REG(0x0050,x);//水平 GRAM起始位置
LCD_WR_REG(0x0051,x);//水平GRAM终止位置
LCD_WR_REG(0x0052,y+120);//垂直GRAM起始位置
LCD_WR_REG(0x0053,y+120);//垂直GRAM终止位置
LCD_WR_REG16(0x0022);
pixel=LCD_RD_DATA16();
pixel=LCD_RD_DATA16();
//TFT为BGR模式,读出来的数据要做RGB交换
blue=(pixel>>11)&0x001F;
red=(pixel<<11)&0xF800;
green=pixel&0x07E0;
pixel=red|green|blue;
//pixels[x*60+y] = pixel;
/*
USART_SendData(USART1,(u8)(pixel>>8));
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET)
{}
USART_SendData(USART1,(u8)(pixel&0xff));
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)==RESET)
{} */
LCD_WR_REG(0x0020,x+120);//Lcd光标GRAM水平起始位置 为什么必须写两遍才能写进去数据
LCD_WR_REG(0x0021,y+120); //Lcd光标垂直GRAM起始位置
LCD_WR_REG(0x0050,x+120);//水平 GRAM起始位置
LCD_WR_REG(0x0051,x+120);//水平GRAM终止位置
LCD_WR_REG(0x0052,y+120);//垂直GRAM起始位置
LCD_WR_REG(0x0053,y+120);//垂直GRAM终止位置
LCD_WR_REG16(0x0022);
LCD_WR_DATA16(pixel);
}
}
}
原来只有7==stopbit的时候读出的数据写进去显示不正常,后来改成读写两次,就变的正常了,这是为什么啊 |
|