|  | 
 
| void Lcd_printf(unsigned int x,unsigned int y,unsigned int c,unsigned int bk_c,unsigned int st,char *fmt,...)
 {
 char __LCD_Printf_Buf[256];
 va_list ap;
 unsigned char *pStr = (unsigned char *)__LCD_Printf_Buf;
 unsigned int i = 0;
 va_start(ap,fmt);
 vsprintf(__LCD_Printf_Buf,fmt,ap);
 va_end(ap);
 while(*pStr != 0 )
 {
 switch(*pStr)
 {
 case '\n' :
 {
 break;
 }
 default:
 {
 if( *pStr > 0xA0 & *(pStr+1) > 0xA0 )
 //中文输出
 {
 Lcd_PutHZ( x , y , (*pStr - 0xA0)*0x0100 +
 *(pStr+1) - 0xA0 , c , bk_c , st);
 pStr++;
 i++;
 x += 16;
 }
 else //英文输出
 {
 Lcd_PutASCII( x , y , *pStr , c ,
 bk_c , st );
 x += 8;
 }
 break;
 }
 }
 pStr++;
 i++;
 if( i > 256 ) break;
 }
 }
 第一是,程序中的i有什么作用,为什么大于256要break?
 
 
 
 
 
 
 
 
 void Lcd_PutHZ(unsigned int x,unsigned int y,unsigned short int QW,unsigned int
 c,unsigned int bk_c,unsigned int st)
 {
 unsigned short int i,j;
 unsigned char *pZK,mask,buf;
 pZK = &__CHS[ ( ( (QW >> 8) - 1 )*94 + (QW & 0x00FF)- 1 )*32 ];
 for( i = 0 ; i < 16 ; i++ )
 {
 //左
 mask = 0x80;
 buf = pZK[i*2];
 for( j = 0 ; j < 8 ; j++ )
 {
 if( buf & mask )
 {
 PutPixel(x+j,y+i,c);
 }
 else
 {
 if( !st )
 {
 PutPixel(x+j,y+i,bk_c);
 }
 }
 mask = mask >> 1;
 }
 //右
 mask = 0x80;
 buf = pZK[i*2 + 1];
 for( j = 0 ; j < 8 ; j++ )
 {
 if( buf & mask )
 {
 PutPixel(x+j + 8,y+i,c);
 }
 else
 {
 if( !st )
 {
 PutPixel(x+j + 8,y+i,bk_c);
 }
 }
 mask = mask >> 1;
 }
 }
 }
 
 
 第二是,程序中这句话的意思:pZK = &__CHS[ ( ( (QW >> 8) - 1 )*94 + (QW & 0x00FF)- 1 )*32 ];
 
 
 小弟在此多谢大家了,希望能给我一点帮助
 | 
 |