15741|30

2641

帖子

0

TA的资源

五彩晶圆(中级)

楼主
 

贡献大家都感兴趣的OLED显示汉字源码 [复制链接]

花了半天时间研究TI的LM3S8962开发板自带OLED显示,在rit128x96x4.c中自己添加了一个RIT128x96x4HZStringDraw函数,实现16*16中文汉字显示,现在汉字存储在内部FLASH中,下一步准备把字库存储到外部FLASH中:D
void RIT128x96x4HZStringDraw(const char *pcStr, unsigned long ulX,
                      unsigned long ulY, unsigned char ucLevel)
{
    unsigned long ulIdx1, ulIdx2, k, hzxx;
    unsigned char ucTemp;
    unsigned short hzTemp;

    g_pucBuffer[0] = 0x15;
    g_pucBuffer[1] = ulX / 2;
    g_pucBuffer[2] = 63;
    RITWriteCommand(g_pucBuffer, 3);
    g_pucBuffer[0] = 0x75;
    g_pucBuffer[1] = ulY;
    g_pucBuffer[2] = ulY + 15;
    RITWriteCommand(g_pucBuffer, 3);
    RITWriteCommand(g_pucRIT128x96x4VerticalInc,
                    sizeof(g_pucRIT128x96x4VerticalInc));

    while(*pcStr != 0)
    {
        ucTemp = *pcStr++;
        if(ucTemp > 0x7f)
        {
            hzTemp = ucTemp;
            hzTemp <<= 8;
            ucTemp = *pcStr++;
            hzTemp |= ucTemp;
            hzxx = findHzIndex(hzTemp);
            k = 7;
            for(ulIdx1 = 0; ulIdx1 < 8; ulIdx1++)
            {
                for(ulIdx2 = 0; ulIdx2 < 16; ulIdx2++)
                {
                    g_pucBuffer[ulIdx2] = 0;
                    if(ulIdx1 < 4)
                    {
                        if(GB_16[hzxx].Msk[ulIdx2*2] & (1 << k))
                        {
                            g_pucBuffer[ulIdx2] = (ucLevel << 4) & 0xf0;
                        }             
                        if(GB_16[hzxx].Msk[ulIdx2*2] & (1 << (k-1)))
                        {
                            g_pucBuffer[ulIdx2] |= (ucLevel) & 0x0f;
                        }           
                    }
                    else
                    {
                        if(GB_16[hzxx].Msk[ulIdx2*2+1] & (1 << k))
                        {
                            g_pucBuffer[ulIdx2] = (ucLevel << 4) & 0xf0;
                        }             
                        if(GB_16[hzxx].Msk[ulIdx2*2+1] & (1 << (k-1)))
                        {
                            g_pucBuffer[ulIdx2] |= (ucLevel) & 0x0f;
                        }           
                    }
                }
                if(k <= 1) k = 7;
                else k-=2;
                RITWriteData(g_pucBuffer, 16);
                ulX += 2;
                if(ulX == 128)
                {
                    return;
                }
            }
        }
        else
        {
            hzxx = (ucTemp-32);
            k = 7;
            for(ulIdx1 = 0; ulIdx1 < 4; ulIdx1++)
            {
                for(ulIdx2 = 0; ulIdx2 < 16; ulIdx2++)
                {
                    g_pucBuffer[ulIdx2] = 0;
                    if(ASCII[hzxx][ulIdx2] & (1 << k))
                    {
                        g_pucBuffer[ulIdx2] = (ucLevel << 4) & 0xf0;
                    }             
                    if(ASCII[hzxx][ulIdx2] & (1 << (k-1)))
                    {
                        g_pucBuffer[ulIdx2] |= (ucLevel) & 0x0f;
                    }           
                }
                if(k <= 1) k = 7;
                else k-=2;
                RITWriteData(g_pucBuffer, 16);
                ulX += 2;
                if(ulX == 128)
                {
                    return;
                }
            }
        }
    }
}

最新回复

很吊的样子  详情 回复 发表于 2012-12-27 19:27

点评

求大侠指教。邮箱jstzdingpeng@126.com  详情 回复 发表于 2012-12-27 10:34
 
点赞 关注

回复
举报

2万

帖子

74

TA的资源

管理员

沙发
 
谢谢分享 嘿嘿 赞一个
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

板凳
 
没有相机用手机照的,不够清晰
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

4
 

完整代码呢

求工程?
 
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

5
 
就是这个函数加字库数组就OK了,关注的人多我就发存储外部FLASH的字库工程:D

[ 本帖最后由 fengzhang2002 于 2010-9-8 18:05 编辑 ]
 
 
 

回复

2万

帖子

74

TA的资源

管理员

6
 

回复 5楼 fengzhang2002 的帖子

呵呵 帮顶 需要的朋友快来啊
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

7
 

佩服

高,我也正在弄显示,我是在sbc Demo板子上显示汉字,搞了好几天了,就Demo的程序都没搞懂,显示汉字更不用说思路了!!!

:( 

 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(初级)

8
 

回复 5楼 fengzhang2002 的帖子

高人啊,我这些天一直在弄8962这块板子,常来看你的贴子
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 
dingyige !!
 
 
 

回复

107

帖子

0

TA的资源

一粒金砂(中级)

10
 
赞,关注
 
 
 

回复

275

帖子

4863

TA的资源

五彩晶圆(初级)

11
 
好东西 收着了 谢谢楼主
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(高级)

12
 
我做了个汉字库,放在SST25VF040里面,用LM3S1811.可以显示中英汉字.多国语言也可以做.点阵大小也可以调整.
 
 
 

回复

221

帖子

2

TA的资源

一粒金砂(高级)

13
 
我按照楼主的说法,在rit128x96x4.c里面追加一段,就是楼主写的那段,然后找了个字库,做了个GB_16.c内容相这样
unsigned char GB_16[]={

0x40,0x42,0xDC,0x08,0x00,0x00,0xFE,0x52,
0x92,0x12,0x12,0x92,0x73,0x02,0x00,0x00,
0x40,0x20,0x1F,0x20,0x48,0x46,0x51,0x50,
0x48,0x45,0x42,0x45,0x48,0x50,0x00,0x00,/*"返",2088*/

0x44,0x94,0xA4,0x64,0x04,0x0F,0x04,0xE4,
0x24,0x2C,0x2F,0x24,0xE4,0x04,0x04,0x00,
0x08,0x09,0xF8,0x04,0x03,0x00,0x00,0x3F,
0x40,0x40,0x42,0x46,0x43,0x70,0x00,0x00,/*"范",2089*/
……

可是一编译就出问题

rit128x96x4.c(953): warning:  #223-D: function "findHzIndex" declared implicitly
rit128x96x4.c(962): error:  #154: expression must have struct or union type
rit128x96x4.c(966): error:  #154: expression must have struct or union type
rit128x96x4.c(973): error:  #154: expression must have struct or union type
rit128x96x4.c(977): error:  #154: expression must have struct or union type
rit128x96x4.c(1002): error:  #20: identifier "ASCII" is undefined
楼主帮帮忙看看
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(中级)

14
 
好东西啊,能分享一下工程吗,刚收到板子,对这个很感兴趣,谢谢
发我邮箱也行dyc12292@163.com
 
 
 

回复

2804

帖子

0

TA的资源

五彩晶圆(初级)

15
 
等过两天我用LabVIEW写几个字!~
 
个人签名QQ:1625345502
 
 

回复

79

帖子

0

TA的资源

一粒金砂(中级)

16
 

回复 楼主 fengzhang2002 的帖子

lz  你哪里有没有tm128160的驱动程序啊  我找不到 又不会自己写
 
个人签名机遇总是给有准备的人呢
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

17
 
汉字数组格式如下:
const FNT_GB16 GB_16[] =
{
"■",
0x00,0x00,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,
0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x7F,0xFC,0x00,0x00,0x00,0x00,
"图",
0x00,0x00,0x7F,0xFC,0x44,0x04,0x47,0xE4,0x44,0x44,0x4A,0x84,0x71,0x04,0x42,0xC4,
0x4C,0x3C,0x71,0x14,0x40,0x84,0x42,0x04,0x41,0x84,0x41,0x04,0x7F,0xFC,0x40,0x04,
"片"}
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

18
 
多谢多谢
 
 
 

回复

2641

帖子

0

TA的资源

五彩晶圆(中级)

19
 
自己顶上去,最近在做基于GRLIB的汉字显示,有需求的朋友可以交流一下
 
 
 

回复

2734

帖子

0

TA的资源

裸片初长成(初级)

20
 
挺清楚的了,不错,顶了!
 
个人签名我爱电子!
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表