OpenEdv-开源电子网

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

求助OLED屏幕显示图片问题

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-5-30
在线时间
11 小时
发表于 2017-10-9 16:45:57 | 显示全部楼层 |阅读模式
20金钱
我使用取模软件取24*24的bmp图像可以正常显示取128*64图片直接无显示
下面是画图函数
void OLED_Show_Font(u16 x,u16 y,u8 fnum)
{
        u8 temp,t,t1;
        u8 y0=y;
        u8 *dzk;
        u8 csize=32;                                       
        dzk=(u8*)OLED_HZK_TBL[fnum];       
        for(t=0;t<csize;t++)
        {                                                                                                     
                temp=dzk[t];                                                      
                for(t1=0;t1<8;t1++)
                {
                        if(temp&0x80)OLED_DrawPoint(x,y,1);
                        else OLED_DrawPoint(x,y,0);
                        temp<<=1;
                        y++;
                        if((y-y0)==24)
                        {
                                y=y0;
                                x++;
                                break;
                        }
                }           
        }  
}

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

使用道具 举报

5

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1522
金钱
1522
注册时间
2014-5-16
在线时间
217 小时
发表于 2017-10-9 17:57:09 | 显示全部楼层
本帖最后由 zmingwang 于 2017-10-9 21:28 编辑

我稍微给你改了下,显示24*24的字应该没问题,要显示其他大小的字,只要把里面那个宏定义改了就好.
[mw_shl_code=c,true]void OLED_Show_Font(u16 x, u16 y, u8 fnum)
{
        u8 temp, t, t1;
        u8 y0 = y;
        u8 *dzk;

#define FONT_SIZE        24

        dzk = (u8*)OLED_HZK_TBL[fnum];

        for (t = 0; t < FONT_SIZE; t++, x++)
        {
                y = y0;
                for (t1 = 0; t1 < FONT_SIZE; t1++)
                {
                        if ((t1 % 8) == 0)
                        {
                                temp = *dzk++;
                        }
                        if (temp & 0x80)
                        {
                                OLED_DrawPoint(x, y, 1);
                        }
                        else
                        {
                                OLED_DrawPoint(x, y, 0);
                        }
                        temp <<= 1;
                        y++;
                }
        }
}[/mw_shl_code]
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-5-30
在线时间
11 小时
 楼主| 发表于 2017-10-9 19:58:21 | 显示全部楼层
zmingwang 发表于 2017-10-9 17:57
我稍微给你改了下,显示24*24的字应该没问题,要显示其他大小的字,只要把里面那个宏定义改了就好.
[mw_shl_c ...

不行  24的也显示不出
回复

使用道具 举报

5

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1522
金钱
1522
注册时间
2014-5-16
在线时间
217 小时
发表于 2017-10-9 21:30:20 | 显示全部楼层
是有点问题,再看上面的代码,改了下,应该对了.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 17:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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