9341驱动的TFT无法完全显示8040号字库ASCII码,求大神指点

2019-08-13 20:32发布

本帖最后由 634401387 于 2017-10-11 17:54 编辑

9341驱动的TFT无法完全显示8040号字库ASCII码,求大神指点,症状如图,用的是库例程

void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{                                                            
    u8 temp,t1,t;
        u16 y0=y;
        u16 colortemp=POINT_COLOR;   
        u8 csize=(size/8+((size%8)?1:0))*(size/2);                  
        num=num-' ';
        if(!mode)
        {
            for(t=0;t<csize;t++)
            {   
                        if(size==63) temp=asc2_6331[num][t];       
                        //if(size==80) temp=asc2_8040[num][t];       
                for(t1=0;t1<8;t1++)
                        {                            
                        if(temp&0x80)POINT_COLOR=colortemp;
                                else POINT_COLOR=BACK_COLOR;
                                LCD_DrawPoint(x,y);       
                                temp<<=1;
                                y++;
                                if(y>=lcddev.height){POINT_COLOR=colortemp;return;}
                                if((y-y0)==size)
                                {
                                        y=y0;
                                        x++;
                                        if(x>=lcddev.width){POINT_COLOR=colortemp;return;}
                                        break;
                                }
                        }           
            }
        }else
        {
            for(t=0;t<size;t++)
            {          
                        if(size==63) temp=asc2_6331[num][t];
                        //if(size==80) temp=asc2_8040[num][t];                               
                for(t1=0;t1<8;t1++)
                        {                            
                        if(temp&0x80)LCD_DrawPoint(x,y);
                                temp<<=1;
                                y++;
                                if(y>=lcddev.height){POINT_COLOR=colortemp;return;}
                                if((y-y0)==size)
                                {
                                        y=y0;
                                        x++;
                                        if(x>=lcddev.width){POINT_COLOR=colortemp;return;}
                                        break;
                                }
                        }           
            }     
        }
        POINT_COLOR=colortemp;                                          
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。