OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2281|回复: 4

TFT显示取模大数字有问题,请教一下

[复制链接]

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
发表于 2018-12-6 10:50:56 | 显示全部楼层 |阅读模式
1金钱
使用min板的想让TFT显示大数字直接照着原子哥的显示汉子的函数改了一个40*40的点阵显示函数,显示汉子是没有问题的,因为我想显示大约60*60的大数字通过取模发现汉子和数字所占字节的大小是不一样的,所以自己就在这个44*40的函数中的通过,取模数字,将偏移20补偿,实际大小和汉子的大小是一样的。但是现在的显示有的时候会显示白框,大家有什么好的办法显示大数字的办法,指点一点一下,谢谢[mw_shl_code=applescript,true]//在指定位置 显示1个40*40的汉字
//(x,y):汉字显示的位置
//index:tfont数组里面的第几个汉字
//color:这个汉字的颜色
//color1:背景颜色
void Test_Show_CH_Font40(u16 x,u16 y,u8 index,u16 color,u16 color1)
{                               
        u16 temp,t,t1;
        u16 y0=y;                                  
    for(t=0;t<200;t++)//每个40*40的汉字点阵 有200个字节
    {   
                if(t<40)temp=tfont40[index*5][t];                  //前50个字节
                else if(40<t<80)temp=tfont40[index*5+1][t-40];     //中50个字节
        else if(120<t<160)temp=tfont40[index*5+2][t-120];  //中50个字节
        else temp=tfont40[index*5+3][t-40];                //后50个字节
        
            for(t1=0;t1<8;t1++)
                {
                        if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点
                        else LCD_Draw_Point(x,y,color1);   //画空白点(使用背景色)
                        temp<<=1;
                        y++;
                        if((y-y0)==40)
                        {
                                y=y0;
                                x++;
                                break;
                        }
                }           
    }         
}[/mw_shl_code]

取模方式

取模方式

显示界面

显示界面
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2018-9-14
在线时间
17 小时
发表于 2018-12-6 11:31:28 | 显示全部楼层
你可以试一下,现在不是汉字点阵大小为60*40将它整体放大两倍,应为数字是占用汉字的一般的位数。你取模出来以后是你想要的大小的一半。
回复

使用道具 举报

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
 楼主| 发表于 2018-12-6 12:55:50 | 显示全部楼层
萝卟 发表于 2018-12-6 11:31
你可以试一下,现在不是汉字点阵大小为60*40将它整体放大两倍,应为数字是占用汉字的一般的位数。你取模出 ...

现在放大就是想按照这个思路去做的,但是现在已经发现有点bug了就是显示的时候会有小白框,一半的时间是正常的,,所有现在再发放大也还是会有问题的
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-12-6 13:37:24 | 显示全部楼层
取模的时候, 注意观察每个字的大小有多少个画素.
下断点去看, 在画每个字元的时候, 实际程序在运行的时候x方向有没有多跑了.
选字形的时候, 尽量选固定宽度的字元, 否则要改可以支持可变宽度的取模软件, 和修改显示程序支持.
回复

使用道具 举报

5

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
437
金钱
437
注册时间
2018-9-14
在线时间
17 小时
发表于 2018-12-6 15:15:07 | 显示全部楼层
如果是一半时间是正常的,这个可能是因为你取出来的字模和你程序里的那个读取字模位数的程序不匹配,你看看试试吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 08:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表