gswubo 发表于 2020-4-7 09:41:21

TFT屏驱动问题

请教下论坛里的大神,我把1.29寸128*96分辨率的oled屏换成1.3寸240*240的TFT屏,现在驱动成功,总算能显示东西了,但我发现字体变小了,原来12号宋体的字变小了很多,现在用24号宋体才能勉强达到原来的效果。我想应该是分辨率变化的问题,原来的单个像素点很大,现在像素点很小,会把字体变小,但我改了很多次都不行,还请大神们指教下。如下图所示

gswubo 发表于 2020-4-7 09:46:35

我贴下代码,单片机是PIC18F87K22,大神帮我分析下。

howmoney 发表于 2020-4-7 09:57:46

正常啊,就比如你电脑用高分屏的话,显示的图标也很小

gswubo 发表于 2020-4-7 10:20:22

howmoney 发表于 2020-4-7 09:57
正常啊,就比如你电脑用高分屏的话,显示的图标也很小

有没有办法把字体改大,现在字体太小,看不清楚

gswubo 发表于 2020-4-7 10:21:59

gswubo 发表于 2020-4-7 10:20
有没有办法把字体改大,现在字体太小,看不清楚

用24号字体,我所有界面都要重新变,并且存储空间也不够

jumpjet 发表于 2020-4-7 10:27:38

内存不够加片flash 做字库吧,240*240刷屏也要慢很多了。

lcw_swust 发表于 2020-4-7 10:52:51

本帖最后由 lcw_swust 于 2020-4-7 11:07 编辑

简单的说其实就是要把图像放大?
自己写个函数处理一下吧.

10
00
变成
1100
1100
0000
0000
就是复制像素点,一个点变成四个点.{:lol:}
我乱写了个函数,试一试:
//8*8图像变16*16
void fd(U8 *src, U8 *dist)
{
        U16 x,y;
        for(y=0;y<16;y++)
        {
                for(x=0;x<16;x++)
                {
                        dist=src;
                }
        }
}

gswubo 发表于 2020-4-7 11:08:35

jumpjet 发表于 2020-4-7 10:27
内存不够加片flash 做字库吧,240*240刷屏也要慢很多了。

也就是说除了增大字号的方法,没有其它办法增大字体了。改驱动也不行吗?优先考虑软件的办法

gswubo 发表于 2020-4-7 11:12:49

lcw_swust 发表于 2020-4-7 10:52
简单的说其实就是要把图像放大?
自己写个函数处理一下吧.



非常感谢,试试

loohoo0302 发表于 2020-4-7 11:58:54

其实7楼道方法简单有效,改动量最少,
就是稍稍有那么一点点粗糙,
显示数字、字母比原来的区别不大,仍是强烈推荐。

security 发表于 2020-4-7 12:02:56

gswubo 发表于 2020-4-7 11:12
非常感谢,试试

还是要换字库,这种放大,不太能保证适应全部。

cddyy 发表于 2020-4-7 12:15:26

7楼得做法最简单,1个点写到2*2的4个点,就是有锯齿,不过屏幕小无所谓,效果差不多的。

lcw_swust 发表于 2020-4-7 13:09:34

本帖最后由 lcw_swust 于 2020-4-7 13:13 编辑

gswubo 发表于 2020-4-7 11:12
非常感谢,试试

不好意思,好像有BUG:
src应改为src

先前以为 y/2*8 就等于 y*4 ,越想越觉得不对,现在才反应过来.
当然,程序较粗糙,效率低,实际上还可以优化的,这里的程序只是一个思路.
比如:y的乘法处理可放在x循环之前;
比如使用二维数组会更方便,由于两行内容相同,第二行可直接复制第一行.

gswubo 发表于 2020-4-7 14:00:40

lcw_swust 发表于 2020-4-7 13:09
不好意思,好像有BUG:
src应改为src



谢谢,我这边试试

amigenius 发表于 2020-4-7 17:23:04

原来绘一点,现在绘2x2点就可以嘛,而且您原来128*2=256,您现在屏幕240,也差不多了。
页: [1]
查看完整版本: TFT屏驱动问题