迪文科技论坛

 找回密码
 立即注册
搜索
查看: 138|回复: 3

【提问】字库切换

[复制链接]

1

主题

3

回帖

34

积分

新手上路

Rank: 1

积分
34
发表于 2024-9-23 14:13:58 | 显示全部楼层 |阅读模式
可以在代码里实现“显示文本”字库,编码格式,点阵大小的切换吗?
回复

使用道具 举报

0

主题

675

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10010
发表于 2024-9-23 14:54:39 | 显示全部楼层
设置描述指针  控制描述指针修改这些参数
回复

使用道具 举报

1

主题

3

回帖

34

积分

新手上路

Rank: 1

积分
34
 楼主| 发表于 2024-9-23 14:59:55 | 显示全部楼层
lijiayan 发表于 2024-9-23 14:54
设置描述指针  控制描述指针修改这些参数

我这边设置代码这么写得,但是不生效,字体颜色变化也不生效。

//写DGUS中的VP变量数据
//addr:就是直接传入DGUS中的地址
//buf:缓冲区
//len:被发送数据的字数,一个字等于2个字节
void sys_write_vp(uint16_t addr,uint8_t* buf,uint16_t len)
{   
        uint8_t i;  
       
        i = (uint8_t)(addr&0x01);
        addr >>= 1;
        ADR_H = 0x00;
        ADR_M = (uint8_t)(addr>>8);
        ADR_L = (uint8_t)addr;   
        ADR_INC = 0x01;
        RAMMODE = 0x8F;
        while(APP_ACK==0);
        if(i && len>0)
        {       
                RAMMODE = 0x83;       
                DATA1 = *buf++;               
                DATA0 = *buf++;       
                APP_EN = 1;               
                while(APP_EN);
                len--;
        }
        RAMMODE = 0x8F;
        while(len>=2)
        {       
                DATA3 = *buf++;               
                DATA2 = *buf++;
                DATA1 = *buf++;               
                DATA0 = *buf++;
                APP_EN = 1;               
                while(APP_EN);
                len -= 2;
        }
        if(len)
        {       
                RAMMODE = 0x8C;
                DATA3 = *buf++;               
                DATA2 = *buf++;
                APP_EN = 1;
                while(APP_EN);
        }
        RAMMODE = 0x00;
}


void sys_set_value_color(uint16_t addr,uint16_t color)
{
        //sp地址+3,为数据显示变量的颜色描述
        sys_write_vp(addr+3,(uint8_t *)&color,1);
}

void sys_set_Font23(uint16_t addr)
{
        //GBK_高位-低位
        uint8_t codeMode[2] = {0x20,0x00};
        //字库_23
        uint8_t fontID[2] = {0x00,0x17};
        //点阵大小
        uint8_t fontDot[2] = {0x18,0x18};
       
        sys_write_vp(addr+11,codeMode,1);
        sys_write_vp(addr+9,fontID,1);
        sys_write_vp(addr+10,fontDot,1);
        sys_set_value_color(addr,0xFFFF);

}


回复

使用道具 举报

1

主题

3

回帖

34

积分

新手上路

Rank: 1

积分
34
 楼主| 发表于 2024-9-23 15:19:36 | 显示全部楼层
应该是“描述地址”不对,我去改一下试试,多谢大佬
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-11-26 17:10 , Processed in 0.071927 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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