LCD 复位后白屏

2019-08-16 20:11发布

这是我的程序 下载后可以显示文字 按了复位键之后白屏了
#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);       
        }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
大楠神
2019-08-17 07:05
void LCD_ShowChinese(u16 x,u16 y,u8 *num,u8 size,u8 mode)
{
    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++;            
        }
    }
}

一周热门 更多>