这是我的程序 下载后可以显示文字 按了复位键之后白屏了
#include "delay.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
int main(void)
{
u8 x=0;
delay_init(); //延时函数初始化
LCD_Init();
LCD_Display_Dir( 1);
POINT_COLOR=RED;
while(1)
{
LCD_ShowString(0,0,200,24,24,"你的小迷弟");
delay_ms(1000);
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
{
u8 temp,t1,t;
u16 y0=y;
u8 csize=(size/8+((size%8)?1:0))*size; //得到字体一个字符对应点阵集所占的字节数
int index = -1;
if(size == 12)
{
for(t=0; t<sizeof(ch_12_12)/sizeof(ch_12_12[0]); t++)
{
if((num[0] == ch_12_12[t].index[0]) && (num[1] == ch_12_12[t].index[1]))
{
index = t;
break;
}
}
}
else if(size == 16)
{
for(t=0; t<sizeof(ch_16_16)/sizeof(ch_16_16[0]); t++)
{
if((num[0] == ch_16_16[t].index[0]) && (num[1] == ch_16_16[t].index[1]))
{
index = t;
break;
}
}
}
else if(size == 24)
{
for(t=0; t<sizeof(ch_24_24)/sizeof(ch_24_24[0]); t++)
{
if((num[0] == ch_24_24[t].index[0]) && (num[1] == ch_24_24[t].index[1]))
{
index = t;
break;
}
}
}
else
{
return; // 没有对应的字库
}
if(index == -1) return; // 字库中没有找到要显示的汉字
for(t=0;t<csize;t++)
{
if(size == 12) temp=ch_12_12[index].word[t];
else if(size == 16) temp=ch_16_16[index].word[t];
else if(size == 24) temp=ch_24_24[index].word[t];
for(t1=0;t1<8;t1++)
{
if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);
else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);
temp<<=1;
y++;
if(y>=lcddev.height)return; //超区域了
if((y-y0)==size)
{
y=y0;
x++;
if(x>=lcddev.width)return; //超区域了
break;
}
}
}
}
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)
{
u8 x0=x;
width+=x;
height+=y;
while((*p!=127)&&(*p>=' ')) // 127是del符号
{
if(x>=width){x=x0;y+=size;}
if(y>=height)break;//退出
if(*p >127) // 汉字大于127
{
LCD_ShowChinese(x,y,p,size,0);
x += size;
p += 2;
}
else
{
LCD_ShowChar(x,y,*p,size,0);
x += size >> 1;
p++;
}
}
}
一周热门 更多>