打印

开始学stm32,请教一个初级问题:自取模的字符显示

[复制链接]
1268|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
softerchang|  楼主 | 2013-10-29 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人在学习tftlcd显示时,想显示几个自定大小的ascii字符,不想通过字库来显示,根据例程修改一下.但显示不成功,请高人指点.

//在指定位置显示一个字符
//x,y:起始坐标
//num:要显示的字符:" "--->"~"
//size:字体大小 24
//mode:叠加方式(1)还是非叠加方式(0)
void LCD_ShowChar24(u16 x,u16 y,u8 num,u8 size,u8 mode)
{                                                            
    u8 temp,t1,t;
//        u16 y0=y;
        u16 colortemp=POINT_COLOR;                                   
        //设置窗口                  
        num=num-' ';//得到偏移后的值
        if(!mode) //非叠加方式
        {
            for(t=0;t<size;t++)
            {                          
                 temp=asc3_20[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;                               
                        //        if(x>=lcddev.width){POINT_COLOR=colortemp;return;}//超区域了                               
                        }           
            }   
        }else//叠加方式
        {
            for(t=0;t<size;t++)
            {   
                   temp=asc3_20[num][t];                              
                for(t1=0;t1<8;t1++)
                        {                            
                        if(temp&0x80)LCD_DrawPoint(x,y);
                                temp<<=1;
                                y++;
                        //        if(x>=lcddev.height){POINT_COLOR=colortemp;return;}//超区域了
                       
                        }           
            }     
        }
        POINT_COLOR=colortemp;                                          
}  

void LCD_ShowString24(u16 x,u16 y,u16 width,u16 height,u8 size,u8 *p)
{         
//        u8 x0=x;
//        width+=x;
//        height+=y;
    while(*p!='\0')//判断是不是非法字符!
    {              
        LCD_ShowChar24(x,y,*p,size,0);               
                x+=12;
        p++;
    }  
}
沙发
戈卫东| | 2013-10-29 18:11 | 只看该作者
这个没有什么机关.
画点没有问题后,你就可以显示任意字符-----字符点阵如何操作都自由处理.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

83

主题

327

帖子

2

粉丝